Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2015, 14:32
Профессор
Отправить личное сообщение для Infinity178 Посмотреть профиль Найти все сообщения от Infinity178
 
Регистрация: 13.04.2014
Сообщений: 187

Удаление лишних символов при выборе списка и дублирование текста в список LI
Доброго дня форумчани!

Ситуация:
Есть некий список select он преобразуется через jQuery в выпадающее меню.

исходник jQuery автор Dimox

Все работает безупречно.. Параметры соблюдаются, подгрузка через JSON, Ajax так же не нарушает сцепки CSS и DOM элементов. Но проблема появилась там где не ждали..

Список:

<select name="category_name">
  <option value="1">Категория 1</option>
  <option value="2">&nbsp;&nbsp;Категория 2</option>
  <option value="3">&nbsp;&nbsp;&nbsp;&nbsp;Категория 3</option>
  <option value="4">Категория 4</option>
</select>


Символ &nbsp; устанавливается для визуального восприятия Родительная->Дочерняя категория. Т.е. чем выше уровень последней категории тем больше пробелов от края.

Т.к. вложенность не особо большая но данный формат оказался удобным, пришлось остановиться на нем.

И так суть проблемы:

Нашел у jQuery .replace() вот такую замечательную штуку..

и не могу понять если делать через
.each(function() {...
то результат проходит на GET элементы, новые которые только созданы DOM списки не воспринимают функцию.. + работает как положено только на 1-м элементе
$('.jq-selectbox').each(function(){ // оболочка списка DIV
	$('.jq-selectbox__select-text').each(function(){ // DIV где нужный текст
		var str = $(this).text();
		str = str.replace(/\s+/g," "); 
		$(this).text(str);
	});
});

если делать через
.change(function(){...
то не особо выходит с новыми DOM элементами..
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2015, 14:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Infinity178
И так суть проблемы
в чём проблема то?
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2015, 15:33
Профессор
Отправить личное сообщение для Infinity178 Посмотреть профиль Найти все сообщения от Infinity178
 
Регистрация: 13.04.2014
Сообщений: 187

))
проблема в том что
если меняем выбранный пункт - отказ
если создаем новый список DOM - отказ

по сути обрабатывает после перезагрузки страницы.
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2015, 15:42
Профессор
Отправить личное сообщение для Infinity178 Посмотреть профиль Найти все сообщения от Infinity178
 
Регистрация: 13.04.2014
Сообщений: 187

Выходит как качели..

если делать через
.change(function(){...
на голый (без оформления) select список - все ровно работает

Если на список UL > LI так же голый - все нормально работает

Но если делать как в моем случае на базе SELECT создаем DOM UL>LI то начитает тупить.

Просто чувствую что. что то упустил.. не могу понять что
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2015, 16:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Infinity178,
увы так и не понял вашей проблемы - может ещё как-то проще обьясните?
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2015, 16:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Причина в том, что обработчик события устанавливается элементу при загрузке странице. А у вас надо полагать проблема с динамически создаваемыми элементами (UL), а им эти обработчики естественно не установлены. Нужно делегировать обработчик ближайшему родителю, который гарантированно есть на странице.
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2015, 16:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

laimas,
а пробелы то чем мешают человеку, не подскажешь?
Ответить с цитированием
  #8 (permalink)  
Старый 13.03.2015, 17:26
Профессор
Отправить личное сообщение для Infinity178 Посмотреть профиль Найти все сообщения от Infinity178
 
Регистрация: 13.04.2014
Сообщений: 187

при загрузки страницы
http://prntscr.com/6g8iwt

при изменении списка
http://prntscr.com/6g8j2i

при добавлении нового списка
http://prntscr.com/6g8j7f

- - - - - -
я правельно понимаю что нужно .each(.. привязать к HTML
и грубо вывести след. логику:

$('div.case').each(function(){
$(this).find('select).....
или
$(this).find('div').has('&nbsp;')...
});
Ответить с цитированием
  #9 (permalink)  
Старый 13.03.2015, 17:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

а пробелы то чем мешают человеку, не подскажешь?

Думаю это опустить можно, это может написано по незнанию )

Я читаю - родители есть, проблем нет, а если создать новый, то проблемы.

Infinity, давайте на пальцах - у вас одновременно с загрузкой страницы загружается список А, и с ним нет проблем. Затем вы запрашиваете север, получаете данные и строите по ним второй список Б, важно(!) полностью, то есть <select><option></option></select> или <ul><li></li></uL>, что в общем не важно, добавляя его на страницу и с этим списком возникают проблемы. Так? Какие проблемы - он не обрабатывается обработчиком по событию onchange?

Последний раз редактировалось laimas, 13.03.2015 в 17:47.
Ответить с цитированием
  #10 (permalink)  
Старый 13.03.2015, 17:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Infinity178,
можно узнать в чём проблема с пробелами ? или это останется тайной
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подбор варианта из списка select при наборе текста omvitamin Элементы интерфейса 6 04.04.2011 14:48
удаление disabled при нажатии на элемент выпадающего списка deNSe_01 Events/DOM/Window 3 28.01.2011 10:49
Изменения изображения при выборе из списка hayk Общие вопросы Javascript 10 30.11.2010 10:42
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40
раскрывать/скрывать <td> при выборе определенного элемента списка zip Элементы интерфейса 2 19.01.2009 13:58