This question already has answers here:
Do I need to unbind jquery event before remove element?
(3个答案)
5年前关闭。
我在页面上有以下HTML:
在页面加载时,我有以下脚本:
该页面还有其他可操纵该页面并通过以下方式删除的Javascript代码:
我的问题:在删除HTML之前是否需要删除(解除绑定)事件处理程序?如果没有,会不会有内存泄漏或其他影响?
谢谢并恭祝安康!
(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/(添加了重点)