在DOM添加时触发Javascript事件

13

有人知道如何在DOM中添加一个元素后触发JavaScript事件吗?

一般的想法是这样的:

var elem = document.createElement('div');
elem.addEventListener('ON_ADD_TO_BODY', function(){console.log(elem.parentNode)});
//... LATER ON ...
parentElemInBody.appendChild(elem); // <- Event is triggered here after append

有一些函数在您将元素添加到DOM之前不应该被触发,因此将执行延迟直到添加元素才是合理的。

是否有一种方法可以在不需要显式调用它们的情况下实现这一点,或者我应该使用一些hack,包括setTimeout和检查元素是否已经添加到DOM中?

1个回答

19

我都不知道这些东西居然还存在!虽然我确实需要支持IE9-,但是那些关于性能损耗的评论并没有给我很大的信心。我知道我在问题中没有明确提到这一点,所以你的答案是正确的,但是我确实需要考虑所有这些因素。是否有一种混合方法,至少能够支持IE9-? - sgcharlie
对于不支持上述功能的浏览器,您可能需要推出一个定时器,定期检查父元素的子元素并触发一些回调。 - techfoobar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接