This question already has answers here:
Do I need to unbind jquery event before remove element?
                            
                                (3个答案)
                            
                    
                5年前关闭。
        

    

我在页面上有以下HTML:

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


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

$(document).ready(function(){

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

});


该页面还有其他可操纵该页面并通过以下方式删除的Javascript代码:

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


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

谢谢并恭祝安康!

最佳答案

因为您使用的是jQuery,所以您不必担心它。


  与.empty()相似,.remove()方法将元素移出DOM。要删除元素本身及其内部的所有内容时,请使用.remove()。除了元素本身之外,还删除了所有与元素相关联的绑定事件和jQuery数据。要删除元素而不删除数据和事件,请改用.detach()


http://api.jquery.com/remove/(添加了重点)

10-06 08:56
查看更多