2017-07-03 114 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); 
相关问题