2010-10-01 39 views
3

問題是:如果disabled元素產生將在其父級觸發的事件?冒泡由禁用元素觸發的事件

<div id="test"> 
    <button disabled="disabled">Click me</button> 
</div> 
<script type="text/javascript"> 

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

</script> 

除了IE以外的所有瀏覽器都可以阻止事件被觸發,但IE不會觸發。這種行爲是記錄還是標準化的?哪個瀏覽器正確處理上面的代碼?

+0

你怪癖模式和標準模式下測試這在IE? – 2010-10-01 11:51:01

+0

doctype是<!DOCTYPE html PUBLIC「 - // W3C // DTD XHTML 1.0 Strict // EN」「http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd」> – 2010-10-04 05:00:47

+0

I想知道你是否找到了解決方案/解釋。 – Moss 2012-06-19 14:07:47

回答

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); 
} 

:)