2017-07-03 141 views
-1

在我的應用程序中,我創建了許多動態對象。其中一些需要在添加到DOM之後進行初始化。
我希望他們是「聰明的」,只有當他們被添加到dom時才執行一些代碼。有沒有辦法讓對象知道它被添加到DOM?

o/c - 我可以在插入後手動執行代碼。但我試圖避免它。

可以嗎?
怎麼樣?

+1

你爲什麼要設法避免你提到的解決方案? –

+0

你能給一個具體的例子 - 即一些代碼? – kabanus

+0

請提供[mcve] – zer00ne

回答

1

您可以添加您的原型包裝的方法.appendChild或使用MutationEvents

Node.prototype.myAppend = function (el) { 
this.appendChild(el); 
el.onAppend && el.onAppend.call && el.onAppend(); 
} 

var div = document.createElement('div'); 
// handler after append in DOM 
div.onAppend = function() { 
    alert('Node added in DOM'); 
} 

document.body.myAppend(div); 
相關問題