`
highfly-s
  • 浏览: 96927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IE 浏览器和firefox 绑定事件的异同

阅读更多

IE 与火狐浏览器在事件的区别

IE 支持绑定事件为attachEvent 删除事件 detachEvent  

firefox 绑定事件 adEventListener 删除事件为  removeEventListener

它们都可以绑定多个事件,firefox 是按照绑定顺序来进行执行的,IE是从后向前来执行

firefox 在绑定事件的时候 有三个参数   最后一个参数是布尔类型的  当为false时 在冒泡阶段调用事件处理程序 ,当为true时 在捕获阶段调用
事件处理程序 。而IE 只有两个参数 ,一个是绑定的事件类型 ,一个是事件的处理程序函数 只有在冒泡阶段时调用事件处理程序。

绑定事件处理程序时,最好用一个变量来表示。否则在移除事件时程序是不执行的。只因绑定事件处理程序它是一个匿名函数。

firefox 和IE 绑定事件时还有另一个区别就是:IE 绑定事件的时候前面会加on 而firefox 而不用添加。

 

跨浏览器进行事件绑定

 在这里我们定义一个EventUtil工具类,里面有添加事件和移除事件的方法  首先创创建第一个添加事件的方法addHandler(),里面传递有三个参数,绑定事件的元素,事件类型 ,事件处理程序(指的是一个变量函数) ,它的职现是区分使用DOM0级方法,DOM3级方法、和IE 级方法。第二个移除事件的方法removeHandler与addHandler方法相反,它也接收三个参数  和添加事件的参数相同。也是对 不同DOM级别进行区分和处理。区分不同级别的DOM 时我们使用能力检测的方法进以区分。

 

var EventUtil= {

addHandler(element,type,handler){

     if(element.addEventListener){

            element.addEventListener(type,handler,false);

     }else if(element.attachEvent){

            element.attachEvent("on"+type,handler);

      } else{

           element["on"+type]=handler;

       }

},

removeHandler(element,type,handler){

          if(element.removeEventListener){

            element.removeEventListener(type,handler,false);

     }else if(element.detachEvent){

            element.detachEvent("on"+type,handler);

      } else{

           element["on"+type]=null;

       }

}

 

};

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics