【发布时间】:2016-03-15 07:56:13
【问题描述】:
假设我有一个元素:
<section id="container">
<div id="curious">hey, there</div>
</section>
然后,在 DOM 加载后,我将一个事件绑定到元素,如下所示:
$('#curious').click(function (){
alert('Are you curious?');
});
稍后,该元素被删除:
$('#container').html('');
绑定的事件会发生什么?是不是也删了?它会徘徊吗?清理它是一个好习惯吗?
【问题讨论】:
-
好问题。我想当您在内部执行
.html('')时,js 引擎会遍历节点并将它们与事件处理程序一起删除。如果不是,那么这就是内存泄漏的来源。哎呀! -
@JoshCrozier 我猜 jQuery 已经决定使用“绑定事件”作为简写;评论已编辑。
标签: javascript jquery html dom javascript-events