2011-03-27 75 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

相关问题