Страницы

Поиск по вопросам

среда, 14 ноября 2018 г.

События js, динамические элементы

Перемещаю div при помощи js в разные места (переменная > remove() > append()), есть клик события на внутренние элементы. При изменении положения дива клик перестает работать, внутренние элементы при этом не меняют класс, на который повешено событие, — как это исправить?
Пример на jsFF
$(".remove").click(function (){ var removeBox = $(".holder"); $(".holder").remove(); $(".parent2").append(removeBox); });
$(".holder > div").click(function () { console.log("Клик"); });


Ответ

Согласно справке по функции .remove()
all bound events and jQuery data associated with the elements are removed. To remove the elements without removing data and events, use .detach() instead.'

все привязанные обработчики и данные ассоциированные с элементами будут удалены. Для удаления элементов без удаления данных и обработчиков используйте .detach()

$(".remove").click(function() { var removeBox = $(".holder").detach(); $(".parent2").append(removeBox); }); $(".holder > div").click(function() { console.log("Клик"); });

1111

Комментариев нет:

Отправить комментарий