我在 IE 9 中,我打电话给:
document.attachEvent('onpropertychange', function(){
console.log("triggered");
});
在返回的控制台中true
。
然后我改变一个属性:
$('div').eq(0).attr("data-url", "url");
这会更改属性但不会打印triggered
到控制台。我究竟做错了什么?
我在 IE 9 中,我打电话给:
document.attachEvent('onpropertychange', function(){
console.log("triggered");
});
在返回的控制台中true
。
然后我改变一个属性:
$('div').eq(0).attr("data-url", "url");
这会更改属性但不会打印triggered
到控制台。我究竟做错了什么?
根据 MSDN,此事件不会冒泡,因此将处理程序放在document
不会观察到div
元素的属性更改。
另外,我不确定对子属性的更改element.dataset
会触发处理程序。我想值得测试。
也许您应该尝试将此事件附加到您的所有 div 中,如下所示:
var divs = $('div');
$.each(divs, function(divObj){
divObj.attachEvent('onpropertychange', function(){
console.log("triggered");
});
});