js事件2-事件兼容问题
2015-12-27 15:23
393 查看
原文链接:https://www.geek-share.com/detail/2662200980.html
对于不同的浏览器,事件响应会有一定的不同,所以我们为了更好的用户效果,必须要考虑好事件兼容性问题。
为了兼容不同的浏览器,我们可以自己编写一个事件对象,通过它的事件添加函数和删除函数来给元素添加/删除对象。
我们在Js中添加一个对象
var EventFunc={ //定义一个事件添加函数 addEvent:function(Object,eventname,funct){ //此处开始编写兼容各种浏览器的添加事件 if(Object.addEventListener){ Object.addEventListener(eventname,funct,false);//DOM2级 }else if(Object.attachEvent){ Object.attachEvent("on"+eventname,funct);//DOM2级.且注意此时事件名前面要加一个"on" } else { Object["on"+eventname]=funct//注意IE中的一些低版本上面的两种方式都不支持,所以采用DOM0级,且注意此处一个地方,这儿地方的事件名前面也要加上"on" 那有的人会说Object."on"+eventname=funct不行吗? 这样是不行的,"."后面是不能加字符串的,所以我们可以通过[]来实现,不用"." 这个地方千万要注意。 } //定义删除事件函数 removeEvent:function(){ if(Object.addEventListener){ Object.removeEventListener(eventname,funct,false);//DOM2级 }else if(Object.attachEvent){ Object.detachEvent("on"+eventname,funct);//DOM2级.且注意此时事件名前面要加一个"on" } else { Object["on"+eventname]=null//注意IE中的一些低版本上面的两种方式都不支持,所以采用DOM0级,且注意此处一个地方,这儿地方的事件名前面也要加上"on" 那有的人会说Object."on"+eventname=funct不行吗? 这样是不行的,"."后面是不能加字符串的,所以我们可以通过[]来实现,不用"." 这个地方千万要注意。 }
} }
如果我们想要给某个元素添加点击事件的话,直接皆可以了
EventFunc.addEvent(Object,"click",function(){ ....})其中我们是"click",不是"onclick",还有后面可以直接写函数名:例如如果有一个函数 function showMes(){...}
那我们可以直接写showMes,注意奥,这里不是showMes()奥,也不是"showMes",
转载于:https://www.cnblogs.com/yuaima/p/5080164.html
相关文章推荐
- js解决回车事件不兼容火狐、IE的问题
- 火狐和谷歌浏览器对js事件兼容问题
- js中解决事件的兼容问题
- js事件2-事件兼容问题
- 2级下拉菜单中CSS兼容和JS事件冒泡问题
- 关于浏览器兼容的问题以及字符串编码的一个坑,鼠标滚动事件mousewheel和DOMMouseScroll
- 关于js,css浏览器兼容常见问题
- 解决checkbox的onclick事件在ie浏览器各版本中不兼容问题
- 解决JS中的浏览器兼容问题
- 有关css和js针对不同浏览器兼容的问题
- JS 实现 ajax 异步浏览器兼容问题
- bootstrap-datetimepicker.js与IE8的兼容问题
- IE/Firefox中JS兼容常见问题
- js读取xml文件,解决浏览器兼容问题
- android Webview中注入js,用于解决第三方页中出现返回事件window.history.go(-1),无法响应问题
- JS控制显示隐藏兼容问题(IE6、IE7、IE8)
- js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME)
- js修改input的type属性及浏览器兼容问题探讨与解决
- 如何解决Vue.js不兼容IE8的问题??
- js滚轮事件兼容性问题需要注意哪些