详解javascript跨浏览器事件处理程序

前端之家收集整理的这篇文章主要介绍了详解javascript跨浏览器事件处理程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文为大家分享了javascript跨浏览器事件处理机制,供大家参考,具体内容如下

<Meta charset="UTF-8"> 跨浏览器的事件处理程序
function $(id){
  return document.getElementById(id);
}

var EventUtil={
  fnCount:0,fnData:{},addHandler:function(element,type,handler){
    this.fnCount++;
    handler.fid = this.fnCount;
    var _fn = handler;
    handler = function(){
      _fn.call(element);
    };
    this.fnData[this.fnCount] = handler;

    if(element.addEventListener){
      element.addEventListener(type,handler,false);
    }  else if(element.attachEvent){
      element.attachEvent("on"+type,handler);
    }  else {
      element["on"+type]=handler;
    }
  },removeHandler:function(element,handler){
    handler = this.fnData[handler.fid];
    if(element.removeEventListener){
        element.removeEventListener(type,false);
    }else if(element.detachEvent){
        element.detachEvent("on"+type,handler);
    }else{
        element["on"+type]=null;
    }
  }
}

var btn=$("myBtn");
var unbtn = $('unlisten');
var bindFn1=function(){
  alert(this.id);
};
var bindFn2=function(){
  alert('2');
};

EventUtil.addHandler(btn,"click",bindFn1);
EventUtil.addHandler(btn,bindFn2);
//EventUtil.removeHandler(btn,bindFn1);
EventUtil.addHandler(unbtn,function(){
  EventUtil.removeHandler(btn,bindFn1);
});

以上就是本文的全部内容,希望对大家的学习有所帮助。

原文链接:https://www.f2er.com/js/49540.html

猜你在找的JavaScript相关文章