jquery ------事件绑定的方法总结(on | addEvevtListener | attachEvent )

用on绑定 off解绑

// onclick绑定
document.body.onclick = () => {
  console.log(111)
}

// 解绑
document.body.onclick = null;

=================================================

jquery写法:
绑定
$(dom).click([子元素,]function(){});
$(dom).on(事件名[,子元素],function(){})

解绑:https://www.jb51.net/article/95723.htm
$(dom).off(事件名) 
off()函数用于移除元素上绑定的一个或多个事件的事件处理函数。
off()函数主要用于解除由on()函数绑定的事件处理函数。
写法:
用法一:
jQueryObject.off( [ events [, selector ] [, handler ] ] )
handler 可选/Function类型指定的事件处理函数。

用法二:
jQueryObject.off( eventsMap [, selector ] )

 addEventListener()和removeEventListener()讲解

定义: addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作。
参数:addEventListener("事件名" , "事件处理函数" , "布尔值"); (注:事件名不含"on",如“click”);
     均含有参数三个, 现在的版本可以省略第三个参数,默认值为false

注意事项:通过addEventListener()添加的事件处理程序只能使用removeEventListener()来移除;
移除时传入的参数与添加处理程序时使用的参数相同。
意味着通过addEventListener()添加的匿名函数无法移除=========

示例:添加事件
要在body上添加事件处理程序,可以使用下列代码:
document.body.addEventListener('touchmove', function (event) {
    event.preventDefault();
},false);

&&& 这种移除虽然看着函数一直,但均为匿名函数,无法移除!!!
document.body.removeEventListener('touchmove', function (event) {
    event.preventDefault();
},false);


&&& 正确写法:(方法要实名声明,之后向下面这样绑定和解绑即可)
function bodyScroll(event){
    event.preventDefault();
}
document.body.addEventListener('touchmove',bodyScroll,false);
document.body.removeEventListener('touchmove',bodyScroll,false);

总结:

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

2:共用函数不能带参数;

 addEvent:


element.attachEvent(eType,function(e))
  适用范围:IE 6、7、8
  参数介绍:
    eType: 必须。字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
    function:必须。定要事件触发时执行的函数。
attachEvent方法 只有ie浏览器支持

非ie浏览器要用 addEventListener("click", function (e) {
}, false);
发布了163 篇原创文章 · 获赞 31 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/COCOLI_BK/article/details/103349178
今日推荐