0

Я в IE 9 и зову:Почему onpropertychange не работает для меня?

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

в консоли, которая возвращает true.

Тогда я изменить атрибут:

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

который изменяет атрибут, но не печатает triggered на консоль. Что я делаю не так?

ответ

2

According to MSDN, это событие не пузырится, поэтому размещение обработчика на document не будет наблюдать изменений свойств на div элементов.

enter image description here

Кроме того, я не уверен, что изменения к югу собственности element.dataset бы вызвать правша. Стоит проверить, полагаю.

+0

Я склонен согласиться с первым утверждением: «Примечание Изменения InnerText или innerHTML дочерних элементов не вызовет onpropertychange событие для запуска родительского элемента. " –

+0

Вы можете переопределить параметры по умолчанию, чтобы он пузырился? – user730569

+0

@ user730569: Это не варианты. Это описание поведения типа события, поэтому они не могут быть изменены. –

0

Может быть, вы должны попробовать прикрепление этого события для всех ваших див, как это:

var divs = $('div'); 
$.each(divs, function(divObj){ 
divObj.attachEvent('onpropertychange', function(){ 
    console.log("triggered"); 
}); 
}); 
Смежные вопросы