当项目被添加到 DOM 或从 DOM 中删除时是否有 javascript 事件?

San*_*ken 0 javascript twitter jquery

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

我可以通过mousedown使用.live(). 之后,我必须等到推文加载完毕,然后才能向下滚动到上一条推文。我有一个setTimeout()现在的黑客,这对我有用,但我想要一个更好的解决方案。

可能的解决方案:

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

CMS*_*CMS 5

由于您的目标是 Google Chrome,您可以使用DOM Level 2 Mutation Events,特别是:

您可以使用addEventListener以下方法绑定它们:

someElement.addEventListener('DOMNodeInserted', eventHandlerFunction, false);
Run Code Online (Sandbox Code Playgroud)

或者因为您使用的是 jQuery,所以使用以下bind方法:

$(selector).bind('DOMNodeInserted', function () { 
  //..
});?
Run Code Online (Sandbox Code Playgroud)

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