js绑定事件和解绑事件


Posted in Javascript onApril 27, 2017

在js中绑定多个事件用到的是两个方法:attachEvent和addEventListener,但是这两个方法又存在差异性

attachEvent方法  只支持IE678,不兼容其他浏览器

addEventListener方法   兼容火狐谷歌,不兼容IE8及以下

addEventListener方法

div.addEventListener('click',fn);

div.addEventListener('click',fn2);
function fn(){ console.log("春雨绵绵"); }

function fn2(){
        console.log("到处潮湿");
      }

attachEvent方法

div.attachEvent('onclick',fn);
div.attachEvent('onclick',fn2);
function fn(){ console.log("春雨绵绵"); }
function fn2(){
        console.log("到处潮湿");
      }

注意点:attachEvent方法绑定的事件是带on的,addEventListener绑定的事件是不带on的

下面我写了一个兼容了IE和火狐谷歌的方法

var div=document.getElementsByTagName("div")[0];
      addEvent('click',div,fn)
      function addEvent(str,ele,fn){
        ele.attachEvent?ele.attachEvent('on'+str,fn):ele.addEventListener(str,fn);
      }
      function fn(){
        console.log("春雨绵绵");
      }

这样就完美的解决了兼容性的问题

有绑定事件的话,那就肯定有解绑事件,但是解绑事件和绑定事件一样,万恶的IE还是会搞特殊化

detachEvent方法  只支持IE678,不兼容其他浏览器

removeEventListener方法   兼容火狐谷歌,不兼容IE8及以下

detachEvent方法写法:

ele.detachEvent("onclick",fn);

removeEventListener的写法:

ele.removeEventListener("click",fn);

下面我写了一个兼容性的方法给大家参考,实现也是很简单

function remove(str,ele,fn){
        ele.detachEvent?ele.detachEvent("on"+str,fn):ele.removeEventListener(str,fn);
      }

注意点:不管是绑定事件attachEvent还是删除事件detachEvent都是要加on的,removeEventListenser和addEventListenser则不需要加on

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木

Javascript 相关文章推荐
用Javascript数组处理多个字符串的连接问题
Aug 20 Javascript
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
Apr 14 Javascript
jquery ajax return没有返回值的解决方法
Oct 20 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
Feb 11 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
Apr 13 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 Javascript
vue自定义tap指令及tap事件的实现
Sep 18 Javascript
javascript自定义日期比较函数用法示例
Jul 22 Javascript
详解ECMAScript6入门--Class对象
Apr 27 #Javascript
利用Vue v-model实现一个自定义的表单组件
Apr 27 #Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
Apr 26 #Javascript
微信小程序实现给循环列表添加点击样式实例
Apr 26 #Javascript
微信小程序 request接口的封装实例代码
Apr 26 #Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 #Javascript
微信小程序 flex实现导航实例详解
Apr 26 #Javascript
You might like
PHP抓取及分析网页的方法详解
2016/04/26 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
大学本科毕业生求职信范文
2013/12/18 职场文书
模范家庭事迹材料
2014/02/10 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
感谢信的格式
2015/01/21 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
活动经费申请报告
2015/05/15 职场文书
停车场管理制度范本
2015/08/05 职场文书
python模板入门教程之flask Jinja
2022/04/11 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers