Как "очистить" clone()
Всем привет!
Вызываю модальное окно. В нем клонирую div с внутренностями: var clon = $('.dotted-field select.cat_1').parent().prev().clone(true); clon.insertBefore($('.parent_level')); Нормально происходит клонирование и вставка в нужное место. Закрываю окно. Вновь открываю модальное окно, клонирую div - вставляется уже две копии. Если закрыть/открыть окно еще раз - будет вставлено три копии и т.д. Как обнулять clone чтобы при каждом новом открытии модального окна вставлялась только одна копия? Спасибо |
Проверять что в прошлый раз уже было вставлено и больше не вставлять.
|
Дело в том, что это большой каталог. И вставлять необходимо в разные места. При этом каждая вставка не дублируется содержимым. Просто каждый раз количество вставляемых блоков увеличивается на 1
|
можно каждый раз очищать, если проверка чем то не устраивает.
$('.parent_level').empty() |
Нет, это не правильно как-то, вставлять 5 блоков, а потом удалять 4.
Получается решения нет. Ок, попробую сделать средствами ajax Всем спасибо за помощь |
Походу ТС нужно было оправдание для своего бреда насчет аякса.
Цитата:
|
Можно как в фильме Шестой день помечать клоны точкой:
if(!$('.parent_level').data('cloned'){ var clon = $('.dotted-field select.cat_1').parent().prev().clone(true); clon.setAttibute('cloned',1); clon.insertBefore($('.parent_level')); } За правильность жикверной проверки не ручаюсь, ибо не знаю жиквери, смысл и так понятен. |
Все оказалось гораздо проще: я опрашиваю селекты по событию onChange и тут же вставляю новый селект, который понятное дело изменился (он же вставляется с тем же id да еще и последним). Поэтому событие и вызывается несколько раз.
Короче сам лоханулся. Спасибо всем за помощь kostyanet: Классная идея! Возьму на вооружение, Спасибо |
Цитата:
или clon.data('cloned',1); ну и синтаксис в условии if(!$('.parent_level').data('cloned')){ идея понятна, но при нормальном алгоритме клонирования дубликатов вложения не возникает на всякий случай: ставить и проверять 'cloned' надо на одном и том же элементе. |
Часовой пояс GMT +3, время: 05:25. |