回答
如果您必須檢測到更改,則可以檢查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. 如何更改識別語言
- 3. 如何讓Visual Studio識別XAML更改?
- 4. 如何識別哪一列已更改
- 5. 如何識別sharedpreferences中更改的值?
- 6. 如何識別對象已更改?
- 7. 更改python環境'cmd'不被識別
- 8. 如何識別我的會話變量何時更改?
- 9. 如何識別何時選擇了選項(不一定更改)?
- 10. 如何識別DOM節點鄰近度
- 11. 如何更改DOM元素?
- 12. 如何識別SIM在iPhone中更改時間?
- 13. 使用jQuery,如何檢測dom元素何時被更改?需要IE8 +支持
- 14. 如何識別Cocos2d中的對象何時被觸摸?
- 15. boost :: spirit :: lex token如何被識別
- 16. 如何識別哪個imageView被觸摸?
- 17. 如何識別ESC是否被按下?
- 18. 如何識別哪個`view`被點擊?
- 19. 如何識別哪個銷被挖掘
- 20. WPF Caliburn:識別集合項的值何時更改
- 21. 如何識別應用何時卸載
- 22. 如何在控制器中更改值時更新DOM
- 23. 上傳被取消時如何識別文件字符串?
- 24. 如何訪問XSSF內容時,沒有表被識別
- 25. Java DOM無法識別CDATA
- 26. shadow dom - 知道何時渲染/更改dom
- 27. 如何在JavaScript中更改DOM的innerHTML
- 28. jQuery:如何監聽DOM更改?
- 29. 如何等到ng2完成更改DOM
- 30. 如何更改被拒絕應用的捆綁包標識
我想讓用戶通過單擊元素來更改頁面上任何元素的顏色。當點擊點已知時,我想要掃描DOM中駐留在點擊點處的所有元素,並讓用戶決定要更改其顏色的元素。由於可以在此頁面上添加和刪除元素,因此看起來我必須在每次點擊時掃描DOM。我認爲緩存變量中的所有DOM元素,並在DOM發生變化時更改此變量。 – 2010-09-19 14:23:25
@MishaMoroshko AFAIK你可以使用event.target來知道哪個節點被點擊了。所以你可以將事件附加到'documentElement'本身。 – 2012-09-29 04:47:37