2011-08-08 42 views
1

如果我有一個動態添加到頁面的DOM元素,然後使用jQuery的$("#id").remove()刪除,是否可以設置回調,因此當元素被刪除時,我可以執行自定義動作。從DOM樹中刪除元素的回調?

我想猴子修補jQuery的remove()方法,所以我可以檢查元素的ID,如果它匹配一個我想要的,執行回調,但我不知道如何

有沒有更好的方法來做到這一點?我該如何使用猴子補丁來做到這一點?

(我正在寫一個Greasemonkey的腳本,我不能改變底層實現)

回答

3

你可以聽DOMNodeRemoved事件,然後由您所需的元素進行篩選。

$("body").bind("DOMNodeRemoved", function(e){ 

    if(e.target.id == "id") { 
    // do something 
    } 
}); 

像往常一樣,有一個只有IE瀏覽器的警告,因此,請檢查這個帖子:http://www.bennadel.com/blog/1623-Ask-Ben-Detecting-When-DOM-Elements-Have-Been-Removed-With-jQuery.htm

+0

'DOMNodeRemoved':*「** **不推薦使用此功能已經從網站中刪除雖然有些瀏覽器可能仍然支持它,它正在被丟棄,不要在舊的或新的項目中使用它,使用它的頁面或Web應用程序可能會隨時中斷...使用[Mutation Observers](https:// developer。 mozilla.org/en-US/docs/Web/API/MutationObserver)。「*來源:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events – Pang

+0

@龐:關心通過發送示例來增強答案? – Mrchief