addEventListener如何影响DOM元素的onclick属性?

lic*_*hgo 5 javascript javascript-events addeventlistener

element.onclick = function() { alert(1); } 

alert(element.onclick);
Run Code Online (Sandbox Code Playgroud)

上面的代码将输出function(){alert(1); }

然后我继续执行以下代码:

element.addEventListener('click', function() { alert(2); }, false);
alert(element.onclick);
Run Code Online (Sandbox Code Playgroud)

输出仍然是函数(){alert(1); }

实际上当点击元素时,代码addEventListener('click',function(){alert(2);},false); 有效,这意味着新函数alert(2)已写入此元素的onclick属性.但为什么输出仍然不变?

那么,我想知道的是在执行addEventListener时,onclick属性是如何更改的?

期待你的回复.

tva*_*son 7

OnClick是DOM Level 0属性.AddEventListener是DOM Level 2定义的一部分.通过AddEventListener方法添加事件处理程序不会更改元素上的OnClick属性,而是将侦听器添加到元素上的事件侦听器集合.您可以在http://www.w3.org/TR/DOM-Level-2-Events/events.html上找到有关DOM Level 2事件的更多信息.http://en.wikipedia.org/wiki/DOM_events上还有一篇很好的文章.