Javascript:我应该在删除相关HTML时删除事件处理程序吗?

时间:2013-09-03 20:56:42

标签: javascript jquery event-handling unbind

我在页面上有以下HTML:

<div class="component">
  <a href="#" class="delete">delete</a>
</div>

我在页面加载时有以下脚本:

$(document).ready(function(){

  $('a.delete').on('click', function() {
    ....
  });

});

此页面包含其他操作页面的Javascript代码,并通过以下方式删除:

$('.component').remove();

我的问题:在删除HTML之前,是否需要删除(取消绑定)事件处理程序?如果没有,是否会有任何内存泄漏或其他影响?

谢谢和问候!

1 个答案:

答案 0 :(得分:2)

因为你正在使用jQuery,所以你不必担心它。

  

.empty()类似,.remove()方法从DOM中获取元素。如果要删除元素本身及其中的所有内容,请使用.remove()。除了元素本身之外,还删除了与元素关联的所有绑定事件和jQuery数据。要删除元素而不删除数据和事件,请改用.detach()

http://api.jquery.com/remove/(强调补充)