繁体   English   中英

将项目添加到DOM或从DOM中删除时,是否存在JavaScript事件?

[英]Is there a javascript event when items are added to or removed from the DOM?

我正在尝试构建一个Chrome浏览器扩展程序,该扩展程序应该可以改善twitter网站在Google Chrome浏览器中的行为方式。 我要标记加载新推文时向下移动的顶部推文,并滚动到它。

通过使用.live()挂钩mousedown事件,我能够在点击前获取顶部的推文。 之后,我必须等到加载这些推文之后,才能向下滚动到上一个推文。 我现在有一个使用setTimeout()的hack, setTimeout()我有用,但是我想要一个更好的解决方案。

可能的解决方案:

  • 以某种方式钩住将元素加载到div时触发的事件
  • 挂钩事件,当元素从DOM中删除时触发

由于您的目标是Google Chrome,因此可以使用DOM Level 2突变事件 ,特别是:

您可以使用addEventListener绑定它们:

someElement.addEventListener('DOMNodeInserted', eventHandlerFunction, false);

或者由于您使用的是jQuery,所以请使用bind方法:

$(selector).bind('DOMNodeInserted', function () { 
  //..
});​

注意不要在那些事件中修改受影响的DOM,因为您可能会进入无限事件递归,例如,如果在DOMNodeInserted事件中插入元素,它将再次触发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM