如何监视DOM的变化?

有没有一种方法 – 使用jQuery或其他方式 – 监视DOM插入,删除,样式更新等?

请参阅https://developer.mozilla.org/en/DOM/DOM_event_reference中的; “MutationEvent”元素,但不推荐使用这些元素。

jQuery现在提供了一种将事件附加到与select器相对应的现有和将来元素的方法: http : //docs.jquery.com/Events/live#typefn

这可能是一个你可以用于缺乏适当的DOM节点修改信息的技巧。

查看突变总结库。 它build立在一个名为DOM Mutation Observers的新浏览器API之上。

这仅用于debugging目的:

Firebug目前允许在html节点上设置断点。

你必须打开HTML检查器,右键单击一个节点,你有以下select:

  • 中断属性更改
  • 子中断添加/删除
  • 中断删除

一旦你到达断点,你也可以浏览调用堆栈。

谷歌浏览器也有类似的function。

我最近写了一个插件,完全是 – jquery.initialize

您可以像使用.each函数一样使用它

 $(".some-element").initialize( function(){ $(this).css("color", "blue"); }); 

.each的不同之处在于 – 它需要你的select器,在这种情况下.some-element并在将来等待这个select器的新元素,如果这个元素将被添加,它也将被初始化。

在我们的例子中,初始化函数只是将元素的颜色改为蓝色。 所以如果我们要添加新的元素(不pipe是用ajax还是F12检查器或者其他的东西),比如:

 $("<div/>").addClass('some-element').appendTo("body"); //new element will have blue color! 

插件将立即启动它。 插件也确保一个元素只被初始化一次。 所以,如果你添加元素,然后从身体.deatch() ,然后再添加它,它不会被再次初始化。

 $("<div/>").addClass('some-element').appendTo("body").detach() .appendTo(".some-container"); //initialized only once 

插件是基于MutationObserver – 它可以在IE9和10上工作,具有依赖性,详见自述文件页面 。