乐趣区

关于javascript:js添加与移除事件

增加事件

个别咱们给 dom 元素增加事件的办法:

var dom = document.getElementById("xxx")
dom.onclick=method

然而如果给一个 dom 增加多个绑定事件呢?

dom.onclick=method1
dom.onclick=method2
dom.onclick=method3

如果这样写,会发现只有 method3 失效,这时候就不能应用 onclick 了,而是应用 attachEventaddEventListener

attachEvent

在 IE 浏览器中,增加事件应用 attachEvent 办法

dom.attachEvent("onclick",method1);
dom.attachEvent("onclick",method2);
dom.attachEvent("onclick",method3);

须要留神的是,事件需加上前缀on,如onclick onsubmit onchange,执行程序method3 > method2 > method1,有力吐槽的 IE…

addEventListener

在除 IE 外的其余浏览器都反对 W3C 规范的 addEventListener 办法

dom.addEventListener("click",method1,false);
dom.addEventListener("click",method2,false);
dom.addEventListener("click",method3,false);

执行程序method1 > method2 > method3,第三个参数指定事件是否在捕捉或冒泡阶段执行,默认 false:事件在冒泡(从子级到父级)阶段执行,true:事件在捕捉(从父级到子级)阶段执行

移除事件

removeEventListener

addEventListener对应移除事件removeEventListener,删除注册事件需两个办法参数雷同。

dom.removeEventListener("click",method1,false);

detachEvent

attachEvent对应移除事件detachEvent,删除注册事件需两个办法参数雷同。

dom.attachEvent("onclick",method1);

参考文章:

https://www.cnblogs.com/leihe…
https://blog.csdn.net/weixin_…

退出移动版