写一个通用的事件监听函数

    xiaoxiao2021-03-26  30

      var Event = {    //页面加载完成后    readyEvent:function(fn){     if(fn == null){      fn = document;     }     var oldonload = window.onload;     if(typeof window.onload != 'function'){      window.onload = fn;     }else{      window.onload = function(){       oldonload();       fn();      }     }    },    //添加事件    addEvent:function(element,type,hander){     if(element.addEventListener){ //非IE      //事件类型,需要执行的函数,是否捕获      element.addEventListener(type,hander,false);     }else if(element.attachEvent){ //IE      element.attachEvent("on"+type,function(){       hander.call(element);      })     }else{      element["on"+type] = hander;     }    },    //移除事件    removeEvent:function(element,type,hander){     if(element.removeEventListener){      element.removeEventListener(type,hander,false)     }else if(element.attachEvent){      element.attachEvent("on"+type,hander);     }else{      element["on"+type] = null;     }    },    //阻止事件    stopPropagation:function(event){     if(event.stopPropagation){      event.stopPropagation();//w3c标准     }else{      event.cancelBubble = true; //ie           }    },    //取消默认事件    preventDefault:function(event){     if(event.preventDefault){      event.preventDefault();     }else{      event.returnValue = false; //ie     }    },    //获取事件目标    getTarget:function(event){     return event.target || event.srcElement;    },    //获取event对象的引用,取到事件的所有信息,确保随时能使用event;    getEvent:function(e){     var even = e || window.event;     if(!even){      var c = this.getEvent.caller;      while(!c){       even = c.arguments[0];       if(even && Event == even.constructor){      break;         }       c = c.caller;      }     }     return even;    }       }
    转载请注明原文地址: https://ju.6miu.com/read-658871.html

    最新回复(0)