跨浏览器的事件处理、事件对象

来源:互联网 发布:软件测试大赛 编辑:程序博客网 时间:2024/05/16 11:46

ie8及以下版本


事件绑定和解绑,事件对象的下列↓↓属性和现代浏览器有所不同,所以为了兼容所有浏览器,可以写一个通用的对象来进行操作:

event.returnValue=false等同于现代浏览器中的event.preventDefault()、
event.cancelBubble=true等同于现代浏览器中的event.stopPropagation()
event.srcElement等同于现代浏览器中的event.target

可以跨浏览器进行事件的操作:
var eventHandler={addEvent:function(ele,eType,fn){if(ele.addEventListener){ele.addEventListener(eType,fn);}else if(ele.attachEvent){ele.attachEvent('on'+eType,fn);}else{ele['on'+eType]=fn;}},removeEvent:function(ele,eType,fn){if (ele.removeEventListener){ele.removeEventListener(eType,fn);}else if(ele.detachEvent){ele.detachEvent('on'+eType,fn);}else{ele['on'+eType]=null;}},getTarget:function(event){return event.target || event.srcElement;},stopPropagation:function(event){if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}},preventDefault:function(event){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}}}


原创粉丝点击