Какое изменение свойства HTMLElement генерирует DOMAttrModified?
У меня есть вопрос о DOMAttrModified. Какие изменения в свойствах элемента HTML инициируют событие DOMAttrModified (особенно интересует Firefox, но может также подойти ответ, применимый к другим браузерам)?
У меня есть следующий тестовый пример:
var elem = document.createElement('input');
document.body.appendChild(elem);
elem.id = 'inputId'; // triggers DOMAttrModified
elem.type = 'text'; // triggers DOMAttrModified
elem.value = 'inputValue'; // DOES NOT trigger DOMAttrModified
elem.lang = 'en'; // triggers DOMAttrModified
Если я изменю elem.value на elem.defaultValue, то DOMAttrModified срабатывает. Есть ли где-нибудь исчерпывающий список? До сих пор я обнаружил, что HTMLInputElement'value' и 'флажок' и свойство HTMLOptionElement'selected' не вызывают триггера DOMAttrModified. Есть ли другие?
Ответ в визуальных атрибутах DOMAttrModified, похоже, НЕ является полностью правильным, так как "значение" также является атрибутом.
Спасибо Сунил
2 ответа
ДОМ value
свойство не меняет HTML value
атрибут разметки. ДОМ defaultValue
делает. DOMAttrModified
срабатывает при изменении атрибутов разметки и т. д. setAttribute
/removeAttribute
вызовы и любой набор свойств, который изменяет атрибут.
Также обратите внимание, что события DOMAttrModified не будут запускаться, если установлен атрибут "disabled". Так что, если ваше мероприятие не стреляет, это может быть причиной. Это также относится к событию onPropertyChange только для IE.