Javascript DOM事件是否会在绑定到的元素死亡后销毁?

Javascript DOM事件是否会在绑定到的元素死亡后销毁?,javascript,events,dom,Javascript,Events,Dom,如果我将一个事件绑定到一个DOM元素,那么如果该元素被销毁,事件是否会被销毁?通过销毁一个元素,我指的是removeChild()。使用appendChild()将节点移动到另一个位置会使事件侦听器保持不变 基本上我对这个感兴趣,因为我想知道我是否需要做一些清理/拆除工作。我想你是指这里的事件处理程序,对吗?如果是这样的话,那么出于垃圾收集的目的,应该注意通过“onfoo”属性附加到元素的函数。IE对于DOM和JavaScript来说相当于一个单独的垃圾收集器,但它们彼此并不了解 我认为,当DO

如果我将一个事件绑定到一个DOM元素,那么如果该元素被销毁,事件是否会被销毁?通过销毁一个元素,我指的是removeChild()。使用appendChild()将节点移动到另一个位置会使事件侦听器保持不变


基本上我对这个感兴趣,因为我想知道我是否需要做一些清理/拆除工作。

我想你是指这里的事件处理程序,对吗?如果是这样的话,那么出于垃圾收集的目的,应该注意通过“onfoo”属性附加到元素的函数。IE对于DOM和JavaScript来说相当于一个单独的垃圾收集器,但它们彼此并不了解

我认为,当DOM元素被丢弃时,确保“onfoo”属性被设置为
null
。通过这样做,JavaScript代码将破坏对分配给处理程序的JavaScript内存的引用,因此DOM垃圾收集器不会泄漏。当然,这也适用于您可能已经添加到DOM元素中的任何其他随机属性


虽然我不喜欢建议使用JavaScript框架来处理没有标记的问题,事实上我不会在这里提出这样的建议,但我要说的是,框架(通常)为您做的一件事是在这种情况下尽量保持DOM“干净”。

我使用jQuery主要是绑定事件侦听器,或者只是添加了一个ventlistener。这里是什么情况?监听器是否与其父代一起死亡?如果您使用jQuery绑定事件处理程序并处理DOM操作,那么它应该为您处理这些内容。因此,您是说如果我使用addEventListener(),我需要在删除DOM元素之前删除监听器?