我对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'和'checked'以及HTMLOptionElement的'selected'属性并没有触发DOMAttrModified。还有其他吗?
DOMAttrModified visual attributes的答案似乎并不完全正确,因为'value'也是一个属性。
谢谢, 苏尼
答案 0 :(得分:3)
DOM value
属性不会更改HTML value
标记属性。 DOM defaultValue
可以。标记属性发生更改时会触发DOMAttrModified
,因此setAttribute
/ removeAttribute
次调用以及更改属性的任何属性集都会触发。
答案 1 :(得分:3)
请注意,设置'disabled'属性时,不会触发任何DOMAttrModified事件。因此,如果您的活动没有解雇,那可能就是原因。这也适用于仅限IE的“onPropertyChange”事件。