K-G*_*Gun 8 javascript events dom
说,我有一个元素<img id="foo" />并附加了一些事件,例如click(不是内联onclick!).
// somewhere i wrote
foo.addEventListener("click", clickHandler, false);
...
// somewhere i will write
foo.parentNode.removeChild(foo);
Run Code Online (Sandbox Code Playgroud)
我是否还需要删除所有活动?
Anu*_*ith 10
为了避免内存泄漏,jQuery在删除元素本身之前从子元素中删除了其他构造,如数据和事件处理程序.
所以:1)如果我们没有明确地删除事件处理程序,我们会得到内存泄漏,2)通过使用empty(),我们可以避免这种内存泄漏.
另请参阅此节点上的do-events-handlers-on-dom-node-get-deleted-with-the-node
从DOM中删除元素不会(也不应该)删除其任何侦听器;毕竟,您很可能只是在重新安排DOM元素,因此您不想丢弃任何侦听器。
您可以在监听之前或之后删除监听器,这没有什么区别。
如果您的计划是删除元素,并且不再使用它们,那么明智的做法是继续删除事件,以避免任何内存泄漏的可能性。