javascript跨浏览器事件对象类库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript跨浏览器事件对象类库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2449字,纯文字阅读大概需要4分钟。
内容图文
![javascript跨浏览器事件对象类库](/upload/InfoBanner/zyjiaocheng/1133/cc066465c19044709dcd5dc42a9bdfbb.jpg)
一、前言
学习了javascript事件后,个人总结归纳了跨浏览器事件对象类库,方便以后使用,现分享给大家。
二、事件对象封装
将对浏览器事件对象的操作封装成eventObject.js方便调用
// 跨浏览器事件对象的操作 var EventUtil = { //绑定事件处理程序 addHandler : function(element, type, handler){ if(element.addEventListener){//DOM2级事件处理程序 element.addEventListener(type, handler, false);//false表示的是冒泡阶段调用事件处理程序 }elseif(element.attachEvent){//IE事件处理程序 element.attachEvent(‘on‘ + type, handler); }else {//DOM0级事件处理程序 element[‘on‘ + type] = handler; } }, //取消绑定的事件处理程序 removeHandler : function(element, type, handler){ if(element.removeEventListener){ element.removeEventListener(type, handler, false); }elseif(element.detachEvent){ element.datachEvent(‘on‘ + type, handler); }else { element[‘on‘ + type] = null; } }, //获取事件对象 getEvent : function(event){ return event || window.event; }, //获取目标元素对象 getTarget : function(event){ return event.target || event.srcElement;//event.target表示获取非IE元素对象,event.srcElement表示获取IE元素对象 }, //阻止事件的默认行为 preventDefault : function(event){ if(event.preventDefault){//非IE下阻止事件的默认行为 event.preventDefault(); }else { event.returnValue = false;//IE下阻止事件的默认行为 } }, //阻止事件的冒泡 stopPropagation : function(event){ if(event.stopPropagation){//非IE下阻止事件冒泡 event.stopPropagation(); }else { event.cancelBubble = true;//IE下阻止事件冒泡 } }, //获取鼠标按下的键位 getButton : function(event){ if(document.implementation.hasFeature("MouseEvents", "2.0")){//DOM2中检测是否有MouseEvents模块return event.button; // var k = event.button;// switch(k){// case 0:// return "0:表示左键";// case 1:// return "1:表示中键";// case 2:// return "2:表示右键";// }//IE6,7,8 左键:1,中键:4,右键:2;//Chrome,FF,IE9+ 左键:0,中键:1,右键:2; }else { switch(event.button){//IEcase 0 : case 1 : case 3 : case 5 : case 7 : return 0;//左键case 2 : case 6 : return 2;//右键case 4 : return 1;//中键 } } }, //鼠标移入移出时获取相关元素对象/*event对象的relatedTarget属性提供了相关元素的信息,这个属性只对于mouseover和mouseout事件才包含值; *对于其他事件,这个属性的值是null。 *IE不支持relatedTarget属性,但提供了保存着同样信息的不同属性。 *在mouseover事件触发时,IE的fromElement属性中保存相关元素; *在mouseout事件触发时,IE的toElement属性中保存相关元素。 */ getRelatedTarget : function(event){ if(event.relatedTarget){ return event.relatedTarget; }elseif(event.toElement){//mouseout事件触发return event.toElement; }elseif(event.fromElement){//mouseover事件触发return event.fromElement; }else { returnnull; } } };
此类库参考了《JavaScript高级程序设计 第3版》相关内容,如果各位有更好的有关事件对象操作的类库,希望能分享交流。
文中有误导大家的地方,希望大伙海涵并给予指正。如果您觉得文章对您有所帮助,您的留言和推荐将对我是莫大的鼓舞!
如需转载本文,请注明来源: http://www.cnblogs.com/changjianqiu/
原文:http://www.cnblogs.com/changjianqiu/p/4323061.html
内容总结
以上是互联网集市为您收集整理的javascript跨浏览器事件对象类库全部内容,希望文章能够帮你解决javascript跨浏览器事件对象类库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。