2014-08-29 120 views
1

我想在DIV內容發生變化時以不同的方式執行腳本,我想要監聽特定節點/子級更改,我在JavaScript中發現了一個名爲「DOMSubtreeModified」的東西this fiddleDart lang中的DOM更改監聽器

$("#someDiv").bind("DOMSubtreeModified", function() { 
    alert("tree changed"); 
}); 

DART中是否有類似的東西?

+0

由於Dart編譯爲Javascript,且大多數瀏覽器不提供子樹修改事件,因此無法在Dart中執行此操作。 – Barmar 2014-08-29 20:11:48

+0

您可以使用MutationObserver進行此操作http://stackoverflow.com/questions/18927901 http://caniuse.com/#feat=mutationobserver https://developer.mozilla.org/en/docs/Web/API/ MutationObserver – 2014-08-29 20:45:46

+0

@Barmar Dart爲現代瀏覽器編譯爲JavaScript。如果一個現代瀏覽器可以做到這一點,Dart可以(可能)做到這一點。 – 2014-08-29 22:17:32

回答

4

感謝@Gunter Zochbauer, 隨着你給推薦的網站,我在DART發現this約MountainObserver,和下面的代碼中的index.html工作完美的我:)

main(){ 
    ... 
    Element myDiv = querySelector('#my-element'); 
    var observer = new MutationObserver((mutations, _) { 
      mutations.forEach((mutation) { 
       print('number of direct nodes here are: ${myDiv.nodes.length}');; 
     }); 
    }); 
    observer.observe(myDiv, childList: true); 
    .... 
    } 

,我已經:

<div id='my-element'></div>