可以用监听器删除dom元素导致内存泄漏吗?

时间:2012-11-09 18:00:14

标签: javascript jquery memory-leaks

假设我有这个HTML:

<ul class="waka_waka">
  <li>Fozzy Bear</li>
  <li>Steve Martin</li>
  <li>John Candy</li>
</ul>

...然后使用jQuery添加一个事件监听器:

$('ul li').click(function() { console.log('waka_waka!!!'); });

如果在某个时刻突然发生了:

$('.waka_waka').remove();

这些事件侦听器是否会自动分离和释放?或者这实际上是否会导致内存泄漏?在删除之前删除这些侦听器是最佳做法吗?

1 个答案:

答案 0 :(得分:2)

根据jQuery DOCS remove还删除所有绑定事件处理程序

  

除了元素本身,所有绑定事件和jQuery   与元素相关联的数据将被删除。

但是看看这个问题jQuery memory leak with DOM removal,似乎可能在某一时刻发生了内存泄漏(请注意,这个问题已经很老了,所以现在它应该已经解决了。)