一、事件的绑定与移除
var EventUtil={
addHandler(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(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(e){
return e||window.event;
},
getTarget(e){
return e.target||e.srcElement;
},
preventDefault(e){
if (e.preventDefault) {
e.preventDefault();
}else{
e.returnValue=false;
}
},
stopPropagation(e){
if (e.stopPropagation) {
e.stopPropagation();
}else{
e.cancelBubble=true;
}
},
getRelatedTarget(e){ //获取相关元素
if (e.relatedTarget) {
return e.relatedTarget;
}else if (e.fromElement) { //IE的mouseover事件触发时
return e.fromElement;
}else if(e.toElement){ //IE的mouseout事件触发时
return e.toElement;
}else{
return null;
}
},
getButton(e){//获取鼠标按钮
if (document.implementation.hasFeature('MouseEvents','2.0')) {
return e.button;
}else{//IE
switch(e.button) {
case 0:
case 1:
case 3:
case 5:
case 7:
return 0;
case 2:
case 6:
return 2;
case 4:
return 1;
}
}
},
getWheelDelta(e){//获取鼠标滚轮增量值
if (e.wheelDelta) {
return (client.engine.opera&&client.engine.opera<