0

我在 IE 9 中,我打电话给:

document.attachEvent('onpropertychange', function(){
    console.log("triggered");
});

在返回的控制台中true

然后我改变一个属性:

$('div').eq(0).attr("data-url", "url");

这会更改属性但不会打印triggered到控制台。我究竟做错了什么?

4

2 回答 2

2

根据 MSDN,此事件不会冒泡,因此将处理程序放在document不会观察到div元素的属性更改。

在此处输入图像描述

另外,我不确定对子属性的更改element.dataset会触发处理程序。我想值得测试。

于 2012-06-12T23:27:49.887 回答
0

也许您应该尝试将此事件附加到您的所有 div 中,如下所示:

var divs = $('div');
$.each(divs, function(divObj){
 divObj.attachEvent('onpropertychange', function(){
  console.log("triggered");
 });
});
于 2012-06-12T23:33:31.853 回答