我无法在文档中找到有关从DOM中删除具有绑定事件的元素时开发人员应该执行的操作的任何内容。 jQuery有remove()和detach()。前者消除了束缚事件,后者则没有。当调用Element#remove()时,开发人员应该做什么?在Dart中删除绑定事件中的DOM元素
1
A
回答
3
听众是元素对任何听的引用 - 这意味着元素将保持任何正在收听的东西,直到元素被GC'd。
侦听不会将侦听器的引用添加到元素,因此元素可以在侦听器之前GC'd。
思考GC的方法是引用 - 当对象A具有对象B的引用时,对象A保留对象B.但是,除非对象B有一个引用返回到对象A,否则B不会阻止A被GC_d。事件是从目标到听众的引用,但不是其他方式。另外,如果对象A有一个对象B的引用,并且B对A有一个引用,那么它们互相保持着对方,但是如果没有任何引用它们,那么它们都可以是GC' d。
这一切的意思是,如果收听元素的代码预计有一个接近元素的生命周期,或者比元素长,那么它不需要unlisten。但是,如果元素预期寿命长,而且听者短暂,那么应该将听者分开(这很有意义 - 为什么短暂的听者仍然在听某些东西?)。 (Google工程师Pete Blois提供的答案)。
相关问题
- 1. 从DOM中删除元素
- 2. 删除绑定列表中的元素
- 3. 不绑定到DOM元素的骨干点击事件绑定
- 4. 绑定不在DOM中的元素
- 5. 如何从DOM元素中删除事件侦听器?
- 6. IE9 - 添加和删除DOM元素中断父级keydown事件
- 7. 如何从DOM中删除子元素时删除父元素?
- 8. 解除绑定涉及从DOM删除jquery的点击事件
- 9. 防止“绑定”去除DOM元素(Knockout.js)
- 10. DOM元素dblclick事件在删除dom元素后发生单击事件后发生变化
- 11. JavaScript的解除绑定DOM事件
- 12. 自动从DOM中删除元素
- 13. TransitionGroup不会从DOM中删除元素
- 14. 从DOM中插入删除元素
- 15. 如果元素被删除,我是否必须清除DOM中的事件?
- 16. 删除元素,但保持所有数据和事件绑定
- 17. MonoTouch.Dialog:元素删除事件
- 18. 在javascript dom元素创建时绑定ready事件
- 19. 删除DOM元素后,jQuery UI datetimepicker绑定到错误输入
- 20. JavaScript DOM删除元素
- 21. 删除DOM元素错误
- 22. 敲除“与”绑定删除子元素?
- 23. JQuery的绑定DOM元素点击事件的成员函数
- 24. 如何将DOM元素绑定到自定义$ .touchpress事件?
- 25. Knockout.JS如何绑定dom元素绑定
- 26. jQuery Mobile,DOM和事件解除绑定
- 27. 将事件绑定到可以动态加载的DOM元素
- 28. 将事件绑定到尚未创建的DOM元素(jquery)
- 29. 如何绑定DOM元素上的所有事件?
- 30. 如何将事件绑定到刷新的DOM元素