Будут ли удалены слушатели, когда мы вызовем $ .remove () в jQuery? - PullRequest
0 голосов
/ 11 сентября 2009
...

Есть слушатели на $ ('# target') и его дочерних элементах.

Когда мы вызываем $ ('# target'). Remove () чтобы удалить его из DOM, будут ли удалены слушатели?

Если нет, то как их убрать вместе?

Ответы [ 2 ]

5 голосов
/ 11 сентября 2009

Зависит от того, как вы добавляете слушателей. Если вы делаете

$("#target").click(function() { doSomething(); });

Тогда remove() также удалит слушателя. Однако, если вы делаете:

$("#target").live("click", function() { doSomething(); });

Слушатель не будет удален. Здесь вы создали живую коллекцию HTML, и если позже вы добавите новый элемент с идентификатором «target», к нему добавится этот слушатель.

1 голос
/ 11 сентября 2009

Да, напрямую связанные обработчики событий и данные из внутреннего кэша будут удалены.

С Манипулирование / удаление :

"Обратите внимание, что эта функция начинается с 1.2.2 также удалит все обработчики событий и данные из внутреннего кэша. "

...