js添加事件和移除事件:addEventListener()与removeEventListener()

一.addEventListener()和removeEventListener()讲解

addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作。

它们都接受3个参数:如     addEventListener(“事件名” , “事件处理函数” , “布尔值”);        (注:事件名不含"on",如“click”)

现在的版本可以省略第三个参数,默认值为false

示例:

要在body上添加事件处理程序,可以使用下列代码:

document.body.addEventListener(‘touchmove’, function (event) {
event.preventDefault();
},false);
    通过addEventListener()添加的事件处理程序只能使用removeEventListener()来移除;移除时传入的参数与添加处理程序时使用的参数相同。这也意味着通过addEventListener()添加的匿名函数无法移除

错误用法示例:
document.body.addEventListener(‘touchmove’, function (event) {
event.preventDefault();
},false);
document.body.removeEventListener(‘touchmove’, function (event) {
event.preventDefault();
},false);
      这个例子中,使用addEventListener()添加一个事件处理程序。虽然调用removeEventListener(0是看似使用了相同的参数,但实际上,第二个参数与传入addEventListener()中的那一个完全不同的函数。而传入removeEventListener()中的事件处理程序函数必须与传addEventListener()中的相同

正确用法示例:

function bodyScroll(event){
event.preventDefault();
}
document.body.addEventListener(‘touchmove’,bodyScroll,false);
document.body.removeEventListener(‘touchmove’,bodyScroll,false);
重写后的这个例子在addEventListener()和removeEventListener()中用的是相同的函数。

共用函数不能带参数,错误用法示例:

function bodyScroll(event){
event.preventDefault();
}
document.body.addEventListener(‘touchmove’,bodyScroll(),false);
document.body.removeEventListener(‘touchmove’,bodyScroll(),false);

总结:

1:相同事件绑定和解除,需要使用共用函数;绑定和解除事件时 事件没有"on" 即onclick写成click

2:共用函数不能带参数;
————————————————
版权声明:本文为CSDN博主「not-stop」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_29606781/article/details/67650869

你可能感兴趣的:(js添加事件和移除事件:addEventListener()与removeEventListener())