微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

rush:xhtml;"> <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);
});

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐