禁用元素触发的事件如何冒泡?

3
问题是:禁用的元素是否应该产生一个在其父级上触发的事件?
<div id="test">
  <button disabled="disabled">Click me</button>
</div>
<script type="text/javascript">

document.getElementById("test").onclick = function() {
  alert("Clicked!");
};

</script>

除了IE之外的所有浏览器都会阻止事件被触发,但IE不会。这种行为是否有记录或标准化?哪些浏览器能正确处理上面的代码?


你是在IE浏览器的怪异模式(quirks mode)还是标准模式(standards mode)下测试的? - Marcel Korpel
文档类型是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">。 - Sergei Morozov
我想知道你是否找到了解决方案/解释。 - Moss
不,我没有。只是用另一种方法解决了。 - Sergei Morozov
1个回答

0
根据http://www.quirksmode.org/js/events_advanced.html,我强烈建议使用事件委托来代替.onclick()绑定。例如:
var element = document.getElementById('test'),
    doSomething = function () {
        alert("Clicked!");
    };
if (element.addEventListener) {
    element.addEventListener('click', doSomething, false);
} else if (element.attachEvent) {
    elem.attachEvent('onclick', doSomething);
}

:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接