回答
如果您必須檢測到更改,則可以檢查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