如果一个事件侦听器附加到表的特定列中的每个单元格,然后从表中删除每一行,为了避免内存泄漏,开发人员有必要在删除行之前删除事件侦听器,或者浏览器会清理东西吗?
编辑:Michael 建议的文章event delegation
比将侦听器直接绑定到表中的每个单元格表现更好,但我不确定从垃圾收集的角度来看它是否更好,或者只是表现更好。请评论。来自文章:
$('table').on('click', 'td', function () {
$(this).toggleClass('active');
});
据说优于:
$('table td').on('click', function () {
$(this).toggleClass('active');
});
Edit2:.on() 和事件委托的jQuery文档也关注性能,但是从垃圾收集的角度来看,当从大表中重复删除行并且单元格单击正在被删除时会发生什么问题由委托机制听取,仍然存在。