Задать вопрос
L1Qu0R
@L1Qu0R
Веб разработчик

Как правильно клонировать элементы?

На странице есть блок с инпутами, на некоторые инпуты привязаны события (jqueryui datepicker к примеру). Необходимо по нажатию на кнопку "Добавить блок" добавлять еще один под ним и так до бесконечности.

Реализую следующим образом:

appendTaskContainer : function() {

            return this
                .on({
                    'click': function()
                    {
                        var stageContainer = $(this).parents('.stage_container');
                        var taskContainer = stageContainer.find('.task_container:last');

                        taskContainer.clone().appendTo(stageContainer);
                    }
                });

        },


Проблема в том, что при таком клонировании, на добавленные элементы не будет реагировать js. Так вот как правильно реализовать клонирование элементов, не прибегая к добавлению html кода напрямую из js (по типу: a.append(""))?
  • Вопрос задан
  • 3150 просмотров
Подписаться 4 Оценить 1 комментарий
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
jsfiddle.net/35fBQ/2
Теперь точно будет работать )
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
alexdevid
@alexdevid
web-developer
несколько блоков, внутри которых есть jquery ui datepicker, так вот по нажатию на любой из них срабатывает только первый.


можт нужно
$('.datepicker').each(function(){
$(this).datepicker();
});
Ответ написан
Комментировать
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Вы просто неправильно вызываете datepicker, напишите, как Вы его вызываете и подскажем, как исправить. Скорее всего вариант @alexdevid правильный.
Ответ написан
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
jsfiddle.net/35fBQ/1
Вообще все работает, странно, почему у Вас только первый срабатывает
Ответ написан
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
При каждом клонировании попробуйте добавлять datepicker. Примерно так:
var taskContClone = taskContainer.clone().appendTo(stageContainer);
taskContClone.find('.datepicker').datepicker();

По идее он должен переназначать id datepicker'a
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы