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