第一个方法是创建addHandle,它的职责是是使用Dom0,DOM2级方法或IE方发来添加事件,这个方法属于叫EventUtil对像里
addHandle接授三个参数(操作元素,事件类型,事件处理程序),和addHandle相反用removeHandle来删除事件
class Eventutil{
constructor(){
this.addHandle=this.addHandle.bind(this);
this.removeHandle=this.removeHandle.bind(this);
}
addHandle(el,type,func){
if(el.addEventListener){
el.addEventListener(type,func,false);
}else if(el.attachEvent){
el.attachEvent(`on${type}`,func);
}else{
el[`on${type}`]=func;
}
};
removeHandle(el,type,func){
if(el.removeEventListener){
el.removeEventListener(type,func,false)
}
else if(el.detachEvent){
el.detachEvent(`on${type}`)=func;
}
else{
el[`on${type}`]=null;
}
}
//event对像跨浏览器
getEvent(event){
return event?event:window.event;
}
//target目标事件跨浏览器 srcElement为IE目标事件
getTarget(event){
return event.target||event.srcElement
}
//阻止默认事preventDefault();而IE returnValue=false;
getPrevent(event){
if(event.preventDefault){
event.preventDefault()
}else{
event.returnValue=false;
}
}
//阻止冒泡事件stopPropagation() IE为 cancelBubble=ture
stopPropagation(event){
if(event.stopPropagation){
event.stopPropagation()
}else{
event.cancleBubble=true;
}
}
}