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

时间:2010-10-02 17:53:36

标签: javascript jquery twitter

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

通过使用mousedown挂钩.live()事件,我可以在点击前获取热门推文。在那之后,我必须等到推文被加载,然后我向下滚动到之前的推文。我现在有一个setTimeout()的黑客,这对我有用,但我想要一个更好的解决方案。

可能的解决方案:

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

1 个答案:

答案 0 :(得分:4)

由于您定位的是谷歌浏览器,因此可以使用DOM Level 2 Mutation Events,具体为:

您可以使用addEventListener

绑定它们
someElement.addEventListener('DOMNodeInserted', eventHandlerFunction, false);

或者因为你使用jQuery,使用bind方法:

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

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