一.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