addEventListener会覆盖其他事件操作吗?

Roo*_*kie 4 javascript javascript-events

addEventListener是否会覆盖先前为特定事件定义的操作?例如,

<input type="text" name="ele" id="eleID" onfocus="doSomeThing();"/>
Run Code Online (Sandbox Code Playgroud)

现在,如果我为同一事件添加另一个动作,两个函数都将被执行吗?

eleID.addEventListener('focus',doSomethingElse,false);
Run Code Online (Sandbox Code Playgroud)

如果doSomethingElse()覆盖doSomeThing(),还有其他方法吗?

lon*_*day 6

没有。

从MDC

addEventListener是注册W3C DOM中指定的事件侦听器的方法。其好处如下:

  • 它允许为一个事件添加多个处理程序。

参见示例


Poi*_*nty 3

不,它不会“覆盖”其他处理程序;这就是为什么它被称为“添加事件监听器”。当事件发生时,所有处理程序都会被调用。

现在,我要说的是,将旧式“DOM 0”事件处理程序附加机制(“on event ”属性)与通过“addEventListener()”添加的事件处理程序混合在一起并不是一个很好的做法。