1

我有一个关于 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 视觉属性的答案似乎并不完全正确,因为“值”也是一个属性。

谢谢, 苏尼尔

4

2 回答 2

3

DOMvalue属性不会更改 HTMLvalue标记属性。DOMdefaultValue确实如此。 DOMAttrModified当标记属性更改时触发,等等setAttribute/removeAttribute调用以及更改属性的任何属性集。

于 2012-03-30T10:19:08.713 回答
3

另请注意,当设置“禁用”属性时,不会触发任何 DOMAttrModified 事件。因此,如果您的事件没有触发,那可能就是原因。这也适用于仅限 IE 的“onPropertyChange”事件。

于 2012-11-19T19:24:52.310 回答