2

如果有可能以某种方式监视 div 的 DOM 中的更改,那么这将是我的解决方案 - 这足以触发我的事件处理程序,但万一这不可能 - 这是我的问题:

我有一个 div,一些 javascript 函数(我无法控制)将向该 div 添加或删除图像(可能嵌套在多个 div/spans 中)。

我需要附加一个事件(如果可能,使用 jQuery),该事件将在添加或不添加此特定图像时触发。

编辑:澄清-当我说添加时-我并不是说它的显示属性的某种切换,我的意思是完全添加或完全删除。

4

1 回答 1

2

您可以为此目的使用突变事件。请注意,其中一些事件现在已被弃用。

$('div').on( 'DOMSubtreeModified', function( event ) {
   // something was changed
});

如果您只需要知道是否添加了某个节点,请使用

$('div').on( 'DOMNodeInserted', function( event ) {
   // something was changed
});

event object将为您提供有关到底发生了什么的更多信息。


由于您要求替代方案,因此有 jQuerylivequery插件。AFAIK,如果可用,我也会使用Mutation Events,但它声称与 jQuery 支持的所有浏览器兼容。这意味着,他们将使用备用解决方案(最有可能intervall timers)来检查不兼容浏览器中的更改。

进一步阅读:突变事件

于 2012-07-31T10:44:00.977 回答