纯JavaScript实现的兼容各浏览器的添加和移除事件封装

 更新时间:2015年03月28日 10:41:58   投稿:junjie  
这篇文章主要介绍了纯JavaScript实现的兼容各浏览器的添加和移除事件封装,本文直接给出实现代码,代码中带详细注释,需要的朋友可以参考下
//事件处理兼容各种浏览器,采用能力检测方法,所谓能力检测,就是有能力就做,没有能力就不做
 
 //定义一个处理事件的对象,兼容各种浏览器,dom2级事件处理和ie事件,如果这两个事件都不兼容,就采用dom0级处理
 var eventUtil ={
    addEvent:function(element,type,handler){
      if (element.addEventListener) {
      	//非IE浏览器采用dom2级事件处理,type为事件类型如:click,handler为事件处理函数,false代表事件采用冒泡处理模型,如果是true代表 采用捕获型处理模型
      	//除了netbeans采用捕获型处理模型,其他都采用冒泡型处理模型
      	//如果是非IE浏览器添加事件为:addEventListener
      	element.addEventListener(type,handler,false);
      }else if (element.attachEvent) {
      	//如果为IE浏览器,添加事件采用 attachEvent
      	element.attachEvent('on'+type,handler);
      }else{
        element['on'+type] = handler;
      }
    },
    removeEvent:function(element,type,handler){
      if (element.removeEventListener) {
      	//非IE浏览器采用dom2级事件处理,type为事件类型如:click,handler为事件处理函数,false代表事件采用冒泡处理模型,如果是true代表 采用捕获型处理模型
      	//除了netbeans采用捕获型处理模型,其他都采用冒泡型处理模型
      	//如果是非IE浏览器添加事件为:removeEventListener
      	element.removeEventListener(type,handler,false);
      }else if (element.detachEvent) {
      	//如果为IE浏览器,添加事件采用 detachEvent
      	element.detachEvent('on'+type,handler);
      }else{
      	//dom0级事件处理,如果删除事件采用赋值null
        element['on'+type] = null;
      }
    },
    getEvent:function(event){
    	  //获取事件本身
    	 return event?event:window.event;
    },
    getType:function(event){
    	 //获取事件类型
    	 return event.type;
    },
    getElement:function(event){
    	 //获取事件作用元素
    	 return event.target || event.srcElement;
    },
    preventDefault:function(event){
    	  //阻止默认的事件行为
      if(event.preventDefault){
      	  event.preventDefault();
      }else{
      	  event.returnValue = false;
      }
    },
    stopProPagation:function(event){
    	//停止事件冒泡
    	  if(event.stopProPagation){
        event.stopProPagation();
    	  }else{
    	  	  event.cancelBubble = true;
    	  }
    }




 }

相关文章

  • JS设计模式之中介者模式使用方法详解

    JS设计模式之中介者模式使用方法详解

    JavaScript中介者模式是一种行为型设计模式,用于降低多个对象之间的耦合性,在中介者模式中,多个对象之间不直接相互通信,而是通过中介者进行通信, 本文就来给大家详细的介绍一下JS设计模式之中介者模式使用方法,需要的朋友可以参考下
    2023-08-08
  • JS实现的简单分页功能示例

    JS实现的简单分页功能示例

    这篇文章主要介绍了JS实现的简单分页功能,涉及javascript事件响应及页面元素遍历、动态构造等相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • javascript读取文本节点方法小结

    javascript读取文本节点方法小结

    本篇文章主要介绍了javascript读取文本节点的方法,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • openlayers4实现点动态扩散

    openlayers4实现点动态扩散

    这篇文章主要为大家详细介绍了openlayers4实现的点动态扩散,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • Bootstrap精简教程中秋大放送

    Bootstrap精简教程中秋大放送

    Bootstrap精简教程中秋大放送,这篇文章主要为大家分享了最基础的Bootstrap学习教程,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • 微信小程序引入模块中wxml、wxss、js的方法示例

    微信小程序引入模块中wxml、wxss、js的方法示例

    这篇文章主要介绍了微信小程序引入模块中wxml、wxss、js的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 详解JavaScript函数对象

    详解JavaScript函数对象

    函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块,JavaScript 中的所有事物都是对象:字符串、数值、数组、函数,下面通过本文给大家介绍JavaScript函数对象,感兴趣的朋友一起学习吧
    2015-11-11
  • 基于JS实现快速读取TXT文件

    基于JS实现快速读取TXT文件

    这篇文章主要介绍了基于JS实现快速读取TXT文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • javascript淘宝主图放大镜功能

    javascript淘宝主图放大镜功能

    这篇文章主要为大家详细介绍了javascript淘宝主图放大镜功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 详解javascript事件冒泡

    详解javascript事件冒泡

    这篇文章主要向大家介绍了javascript事件冒泡,以及javascript阻止事件冒泡的实现代码,感兴趣的朋友可以参考一下
    2016-01-01

最新评论