可能重複:
Detect element content changes with jQuery火在運行一個jQuery功能
我有一個包裝DIV說
<div id="placesNewCheckinContainer" style="display:none">
</div>
如果在運行時的任何DOM元素插入/在那個地方刪除了NewCheckinContainer,我想要一個jQuery函數。 幫助我如何實現這一點。 謝謝
可能重複:
Detect element content changes with jQuery火在運行一個jQuery功能
我有一個包裝DIV說
<div id="placesNewCheckinContainer" style="display:none">
</div>
如果在運行時的任何DOM元素插入/在那個地方刪除了NewCheckinContainer,我想要一個jQuery函數。 幫助我如何實現這一點。 謝謝
有一個完全跨瀏覽器的方式這樣做的沒有便捷的方式。 Firefox,Chrome和Safari全都支持DOMSubtreeModified事件,該事件將在特定元素內部對DOM進行任何修改時觸發。前面提到的瀏覽器和Opera支持DOMNodeInserted和DOMNodeRemoved,這也將完成這項工作。
$("#placesNewCheckinContainer").bind("DOMNodeInserted DOMNodeRemoved", function() {
alert("Something happened inside #placesNewCheckinContainer");
});
不幸的是,IE不支持任何這些事件。它確實有它自己的事件,可以部分做的工作,但 - onpropertychange。這可以通知你什麼時候innerHTML的值發生變化,但僅限於修改直接的孩子,而不是所有的後代。
我知道處理這種情況的唯一方法是突變事件。
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents
這些事件仍然沒有得到廣泛的支持;但是你有一個像
你也可能想看看類似的職位,如:
jQuery有一個更改事件,但它僅用於用戶輸入字段(瀏覽器觸發這些事件)。您列出的DIV的操作必須來自代碼。那麼爲什麼不找到操縱發生的地方,然後將所需的邏輯添加到那裏?
我發現了一個偉大的文章而回"Custom events in jQuery open doors to complex behaviors"
這包括一些很酷的東西,你可以用自定義綁定做。但你仍然需要觸發一個觸發器,這意味着操縱改變div內容的代碼來觸發觸發器,或者設置一個定時間隔來監視div的內容,以便觸發觸發器(我不會推薦這種觸發器 - 因爲它不是即時的並導致不必要的開銷)。
你是什麼意思的運行時?當頁面正在加載或頁面加載? – wajiw 2010-11-17 14:20:49
運行時間表示已加載頁面。 – Soarabh 2010-11-17 14:41:09