码迷,mamicode.com
首页 > Web开发 > 详细

一些web事件兼容(根据高级程序)

时间:2016-12-21 21:31:33      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:win   veh   client   keycode   number   兼容   har   use   and   

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.removeEevntListener ) {
element.removeEevntListener(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;
},

//事件目标
getTarget: function( event ) {
return event.target || window.srcElement;
},

//阻止默认事件
preventDefault: function( event ) {
if ( event.preventDefault ) {
event.preventDefault();
} else {
event.returnValue = false;
}
},

//阻止事件冒泡
stopPropagation: function( event ) {
if ( event.stopPropagation ) {
event.stopPropagation();
} else {
//cancelBubble的默认值是false
event.cancelBubble = true;
}
},

//鼠标跨浏览器兼容事件
getRelatedTarget: function( event ) {
//IE8<=不支持relatedTarget,relatedTarget事件属性返回与事件的目标节点相关的节点 支持toElement和formElement
if ( event.relatedTarget ) {
return event.relatedTarget;
} else if ( event.toElement ) {
return event.toElement;
} else if ( event.formelement ) {
return event.formelement;
} else {
return null;
}
},

//鼠标按钮Button的兼容
//implementation.hasFeature检测DOM版本
getButton: function( event ) {
if ( document.implementation.hasFeature("MouseEvents","2.0") ) {
return event.button;
} else {
switch( event.button ) {
case 0:
case 1:
case 3:
case 5:
case 7:
//按下左侧按钮
return 0;
case 2:
case 6:
//按下右侧按钮
return 2;
case 4:
return 1;
//按下中间按钮
}
}
},

//鼠标滚轮事件兼容
getWheelDelta: function( event ) {
if ( event.wheelDelta ) {
return (client.engine.opera && client.engine.opera < 9.5 ? -event.wheelDelta : event.wheelDelta);
} else {
//由于火狐的值不一样所以,这个值首先反向,然后再乘以40;
return -event.detail * 40;
}
},

//keyCode和keypress兼容
getCharCode: function( event ) {
if ( typeof event.charCode == "number" ) {
return event.charCode;
} else {
return event.keyCode;
}
},
};

能力有限,有幸能够得到您的访问,万分感谢

一些web事件兼容(根据高级程序)

标签:win   veh   client   keycode   number   兼容   har   use   and   

原文地址:http://www.cnblogs.com/zxchun119/p/6208824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!