事件绑定,event兼容各浏览器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事件绑定,event兼容各浏览器相关的知识,希望对你有一定的参考价值。

var eventUtil={
//添加事件
addHandler:function(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:function(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;
}
},
//事件兼容
getEvent:function(event){
return event?event:window.event;
},
//事件类型
getType:function(event){
return event.type;
},
//触发事件目标
getElement:function(event){
return event.target||event.srcElement;
},
//阻止默认行为
preventDefauit:function(event){
if(event.preventDefault){
event.preventDefault()
}else{
event.returnValue=false; //false==阻止默认行为
}
},
//阻止事件冒泡
stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;//true==阻止时间冒泡,false==不阻止冒泡
}
}
//下边是示例
// function show(){
// alert("哈哈")
// }
//eventUtil.addHandler(btn,"click",show);

};

以上是关于事件绑定,event兼容各浏览器的主要内容,如果未能解决你的问题,请参考以下文章

Event Flow

JavaScript中的Event事件对象详解

JavaScript 兼容各大浏览器阻止冒泡事件

js-事件

IFE-16 addEventHandler跨浏览器实现事件绑定

js绑定事件方法:addEventListener的兼容问题