2011-03-27 72 views
5
element.onclick = function() { alert(1); } 

alert(element.onclick); 

上面的代碼將輸出函數(){警報(1); }addEventListener如何影響DOM元素的onclick屬性?

然後我繼續執行下面的代碼:

element.addEventListener('click', function() { alert(2); }, false); 
alert(element.onclick); 

的輸出仍然函數(){警報(1); }

實際上現在在元件上,當點擊,將碼的addEventListener( '點擊',函數(){警報(2);},假);作品,這意味着新的功能警報(2)已寫入該元素的的onclick財產。但爲什麼輸出不變?

因此,執行的addEventListener,如何的onclick性質改變時,我想知道的是什麼?

期待您的回覆。

+0

我爲此做了一個小提琴:http://jsfiddle.net/billymoon/9sNqq/ – 2011-03-27 13:48:41

+0

此外 - 當兩個點擊處理程序添加,他們_both_運行,而不僅僅是第二,所以添加事件偵聽器不會刪除以前。看來element.onclick只返回第一個點擊事件函數。 – 2011-03-27 13:50:26

+0

這將幫助你:https://developer.mozilla.org/en/DOM/element.addEventListener#Notes – jasssonpet 2011-03-27 13:53:02

回答

2

「onfoo」屬性與通過「addEventListener()」訪問的事件處理程序管理系統無關。最好使用其中一種,而不是兩種,正確的選擇是「addEventListener()」(如果可用)更靈活和不引人注意的。

+0

根據[這篇文章](http://www.quirksmode.org/js/events_order.html), 「onfoo」屬性在冒泡階段被視爲註冊。 – zanetu 2013-05-18 23:41:41

相關問題