js事件监听(考虑兼容性)
2017-05-08 14:23
169 查看
说明:
InternetExplorer 8 及更早IE版本不支持 addEventListener()
方法,Opera 7.0 及 Opera 更早版本也不支持。 但是,对于这些不支持该函数的浏览器,你可以使用 attachEvent() 方法来添加事件句柄。
Internet
Explorer 8 及更早IE版本不支持 removeEventListener()
方法,Opera 7.0 及 Opera 更早版本也不支持。 但是,对于这些不支持该函数的浏览器,你可以使用 detachEvent() 方法来移除由
attachEvent() 方法添加的事件句柄 。(以上摘自菜鸟教程)。
关键字:
addEventListener,attachEvent,removeEventListener,detachEventJS工具类代码:
$(function() { //添加,移除监听事件,考虑兼容性 $.fn.extend({ /** * 参考原生JavaScript添加事件监听, * element.addEventListener(event, function, useCapture) * @param {Object} type 必须。事件名 * @param {Object} handle 必须。指定要事件触发时执行的函数 * @param {Object} bool 可选。布尔值,指定事件是否在捕获或冒泡阶段执行 */ addEvent: function(type, handle, bool) { var el, thisLen = this.length; bool ? bool = bool : bool = false; //bool if(thisLen == 1) { el = this[0]; //jquery对象转成 js对象 el.addEventListener ? el.addEventListener(type, handle, bool) : el.attachEvent('on' + type, handle); } else { for(var i = 0; i < thisLen; i++) { el = this[i]; el.addEventListener ? el.addEventListener(type, handle, bool) : el.attachEvent('on' + type, handle); } } }, /** * 参考原生JavaScript移除事件监听, * element.removeEventListener(event, function, useCapture) * @param {Object} type 必须。事件名 * @param {Object} handle 必须。指定要移除的函数 * @param {Object} bool 可选。布尔值,指定事件是否在捕获或冒泡阶段执行 */ removeEvent:function(type,handle,bool){ var el, thisLen = this.length; console.log(this) bool ? bool = bool : bool = false; //bool if(thisLen == 1) { el = this[0]; //jquery对象转成 js对象 console.log(el.removeEventListener) el.removeEventListener ? el.removeEventListener(type, handle, bool) : el.detachEvent('on' + type, handle); } else { for(var i = 0; i < thisLen; i++) { el = this[i]; el.removeEventListener ? el.removeEventListener(type, handle, bool) : el.detachEvent('on' + type, handle); } } } }) })
调用:
$('#main').addEvent('touchstart',start);
相关文章推荐
- js事件监听(考虑兼容性)
- js DOM事件监听与解除的兼容性写法
- JS之 DOM事件监听的兼容性问题 IE 和 FF
- JS 添加/删除事件监听
- 监听浏览器关闭按钮点击事件 -- 使用JS
- javascript在事件监听方面的兼容性小结
- javascript在事件监听方面的兼容性小结
- js中的冒泡事件与事件监听
- JS的事件监听机制
- js 兼容性之阻止事件冒泡传递
- JS 监听按钮单击事件
- js键盘事件监听,给页面操作添加快捷键,提高用户体验效果。
- js监听键盘事件
- Js 怎么自定义onResize事件监听
- js 下拉框添加监听事件和js中删除一个对象
- JS在IE/FF的兼容性考虑
- js 冒泡事件与事件监听使用分析
- 用microsoftAjax.js框架来进行事件监听
- 本地判断图片大小和宽度是可以的;IE6下测试通过,其他还没考虑JS兼容性
- js监听事件实例