3

假设我有这个 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();

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

4

1 回答 1

2

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

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

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

于 2012-11-09T18:02:11.207 回答