当我们在jQuery中调用$ .remove()时,是否会删除侦听器?

时间:2009-09-11 07:04:45

标签: jquery listeners

...

$('#target')及其子女有听众。

当我们调用$('#target')。remove()将其从DOM中删除时,是否会删除侦听器?

如果没有,如何将它们一起移除?

2 个答案:

答案 0 :(得分:5)

取决于您如何添加侦听器。如果你这样做

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

然后remove()也会删除监听器。但是,如果你这样做:

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

不会删除侦听器。你在这里做的是创建一个实时HTML集合,如果你稍后添加一个id为“target”的新元素,它将把这个listenere添加到它。

答案 1 :(得分:1)

是的,将删除直接绑定的事件处理程序和内部缓存的数据。

来自Manipulation/remove

  

“请注意,此功能以   1.2.2还将删除所有事件处理程序和内部缓存数据。“