您现在的位置:首页 >> 前端 >> 内容

解决IE9以下addEventListener不生效问题

时间:2017/2/24 14:27:00 点击:

  核心提示:Element.prototype.addEvent = function(type,fn){if(window.addEventListener){this.addEventListener(typ...
  Element.prototype.addEvent = function(type,fn){
      if(window.addEventListener){
        this.addEventListener(type, fn);
      }else if(window.attachEvent){
        this.attachEvent('on' + type, fn);
      }else{
        this['on' + type] = fn;
      }
  }  

通过向Element添加一个原型链方法来兼容IE9以下的事件添加。

首先检测浏览器是否支持addEventListener这个方法,如果支持则使用这个方法。

使用的时候 可通过获取到的Element直接使用

如:

 var btn = document.getElementById('btn');
     btn.addEvent('click', function(){
        //需要执行的方法
     })

需要注意的是如果执行的是addEventListener或者onclick之类的 this指向都为点击的元素

而attachEvent则会指向window

如果有说的不对的地方,欢迎指正。

Tags:解决 决I IE E9 
作者:网络 来源:sinat_2553