JS中注册与移除事件的几种方式

一、注册事件

1、通过element.onclick方式注册事件,存在无法给同一个对象的同一个事件注册多个事件处理函数的问题

2、通过element.addEventListenner()方式注册事件,存在浏览器兼容性的问题(IE9以后才支持此方法)

3、通过element.attachEvent()方式注册事件,同样存在浏览器兼容性的问题(IE6-IE10特有的方法)

 

兼容性处理函数:

 1 function addEventListener(element,eventName,fn){
 2   //判断当前浏览器是否支持此方法
 3   if(element.addEventListener){
 4      element.addEventListener(eventName,fn)
 5   }else if(element.attachEvent){
 6      element.attachEvent("on"+eventName,fn);
 7    }else{
 8       // 相当于element.onclick=fn;
 9       element["on"+eventName]=fn;
10    }

 

二、移除事件

1、使用element.onclick=null来移除

2、使用element.removeEventListener()来移除

3、使用element.detachEvent()来移除(IE9-IE10支持)

 

兼容性处理函数:

1 function removeEventListener(element,eventName,fn){
2   if(element.removeEventListener){
3     element.removeEventListener(eventName,fn);
4   }  else if(element,detachEvent){
5     element.detachEvent("on"+eventName,fn);
6   }else{
7     element["on"+eventName]=null;
8   }
9 }

 

 

 

posted @ 2019-11-15 14:45  披发长歌览大荒  阅读(1790)  评论(0编辑  收藏  举报