...
Есть слушатели на $('#target') и его дочерних элементах.
Когда мы вызываем $('#target').remove(), чтобы удалить его из DOM, будут ли удалены слушатели?
Если нет, то как удалить их вместе?
2 ответа
Зависит от того, как вы добавляете слушателей. Если вы сделаете
$("#target").click(function() { doSomething(); });
Затем remove()
также удалит прослушиватель. Однако, если вы сделаете:
$("#target").live("click", function() { doSomething(); });
Слушатель не будет удален. Что вы сделали здесь, так это создали живую коллекцию HTML, и если вы позже добавите новый элемент с идентификатором «target», он добавит к нему этого слушателя.
Да, непосредственно связанные обработчики событий и внутренние кэшированные данные будут удалены.
«Обратите внимание, что эта функция, начиная с 1.2.2, также удалит все обработчики событий и данные из внутреннего кэша».
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.