【发布时间】:2011-07-23 21:40:10
【问题描述】:
element.onclick = function() { alert(1); }
alert(element.onclick);
上面的代码会输出function () { alert(1); }
然后我继续执行以下代码:
element.addEventListener('click', function() { alert(2); }, false);
alert(element.onclick);
输出仍然是 function () { alert(1); }
事实上,现在点击元素时,代码 addEventListener('click', function() { alert(2); }, false); 有效,这意味着新函数 alert(2) 已写入此元素的 onclick 属性。但是为什么输出还是没有变化呢?
那么,我想知道的是,在执行addEventListener时,onclick属性是如何变化的?
期待您的回复。
【问题讨论】:
-
我为此做了一个小提琴:jsfiddle.net/billymoon/9sNqq
-
另外 - 添加两个点击处理程序时,它们都运行,而不仅仅是第二个,因此添加事件侦听器不会删除前一个。看来 element.onclick 只是返回第一次点击事件函数。
标签: javascript javascript-events addeventlistener