回答
如果您必须检测到更改,则可以检查DOM突变事件。 DOM events wikipedia page列出他们全部。但是,您应该知道它们在Internet Explorer中不受支持,并且可能在支持它们的浏览器中经常触发。蛮力方法是使用setTimeout
并自行检查更改。
虽然我的经验表明,可以避免需要DOM更改通知。你能否提供关于你确切需求的更多细节?
根据您希望收听的更改类型,您可以附加许多DOM事件。这里是所有的DOM变化活动的网页:
https://developer.mozilla.org/en/DOM_Events
通用的,包罗万象的DOM变化事件DOMSubtreeModified
。例如:
document.getElementById('abc').addEventListener('DOMSubtreeModified', f, false);
不幸的是,没有内置的事件被广泛支持。不过,您可以使用名为livequery的jQuery插件。
他们很棒,但没有得到适当的支持。我宁愿救自己的麻烦,并使用测试插件。 – 2010-09-19 06:38:08
使用库禁止标准开发的需求,并阻止用户从例如IE浏览器。 – 2010-09-19 06:51:31
@Delan这些都是非常错误的假设 - Javascript库抽象出浏览器实现DOM中的差异,并帮助创建一个可以开发的基线,而不是花费时间来消除跨浏览器兼容性问题。在IE上打破你的网站不会阻止人们离开IE,只是人们访问你的网站,并不会帮助任何人。 – 2010-09-19 07:04:33
- 1. 如何识别Greenplum中的表是否已被更改?
- 2. 如何让Visual Studio识别XAML更改?
- 3. 如何识别哪一列已更改
- 4. 如何更改识别语言
- 5. 更改python环境'cmd'不被识别
- 6. 如何识别我的会话变量何时更改?
- 7. 如何识别何时选择了选项(不一定更改)?
- 8. 如何识别DOM节点邻近度
- 9. 如何识别SIM在iPhone中更改时间?
- 10. 如何更改DOM元素?
- 11. 如何识别Cocos2d中的对象何时被触摸?
- 12. 如何识别哪个销被挖掘
- 13. 如何识别ESC是否被按下?
- 14. WPF Caliburn:识别集合项的值何时更改
- 15. 如何在控制器中更改值时更新DOM
- 16. 如何访问XSSF内容时,没有表被识别
- 17. shadow dom - 知道何时渲染/更改dom
- 18. 如何等到ng2完成更改DOM
- 19. 如何在JavaScript中更改DOM的innerHTML
- 20. jQuery:如何监听DOM更改?
- 21. 如何识别架构触发器中的更改值?
- 22. 会话#如何保存(...)以识别已更改的实体?
- 23. 如何让浏览器识别密码更改?
- 24. 如何识别字段值在ASP.Net中已更改 - C#?
- 25. Android:更改ArrayAdapter的微调器 - 如何识别?
- 26. 如何将文本中的语音更改为语音识别?
- 27. iOS:如何识别启动之间的日期更改?
- 28. 如何识别postgresql中最近更改的SP?
- 29. Angular 2 - 组件如何识别URL更改?
- 30. 如何将数据流更改为谷歌语音识别(Python)
我想让用户通过单击元素来更改页面上任何元素的颜色。当点击点已知时,我想要扫描DOM中驻留在点击点处的所有元素,并让用户决定要更改其颜色的元素。由于可以在此页面上添加和删除元素,因此看起来我必须在每次点击时扫描DOM。我认为缓存变量中的所有DOM元素,并在DOM发生变化时更改此变量。 – 2010-09-19 14:23:25
@MishaMoroshko AFAIK你可以使用event.target来知道哪个节点被点击了。所以你可以将事件附加到'documentElement'本身。 – 2012-09-29 04:47:37