2009-09-11 3 views
0
...

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

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

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

ответ

5

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

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

Затем remove() также удалить слушателя. Однако, если вы это сделаете:

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

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

+0

В моем приложении некоторые слушатели добавляются html-файлами, загруженными $ .load(), будут ли они удалены? – omg

1

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

Manipulation/remove От:

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

+0

Как насчет слушателей, добавленных html-файлом, загруженным $ .load()? – omg

Смежные вопросы