自己封装跨浏览器事件添加和删除函数
来源:互联网 发布:你凭什么看不起程序员 编辑:程序博客网 时间:2024/06/03 22:03
为了以跨浏览器的方式处理事件,很多人会使用能够兼容多种浏览器的JavaScript库,例如家喻户晓的JQuery,但其实我们自己编写代码也不难,而且能帮助我们理解不同浏览器的差异,下面就是我自己写的一个比较简单的跨浏览器添加事件和删除事件的对象。原理很简单,其实就是浏览器能力检测而已。
var myEvent = { addHandler: function (element, type, func) { if(element.addEventListener) { //dom2级,如果是非ie element.addEventListener(type, func, false); } else if (element.attachEvent) { //dom2级,如果是ie element.attachEvent("on" + type, func); } else { //dom0级 element["on" + type] = func; } }, removeHandler: function (element, type, func) { if(element.removeEventListener) { //dom2级,如果是非ie element.removeEventListener(type, func, false); } else if (element.detachEvent) { //dom2级,如果是ie element.detachEvent("on" + type, func); } else { //dom0级 element["on" + type] = null; } }, getEvent: function (event) { //获得event对象 return event ? event: window.event; }, getTarget: function (event) { //获得事件目标 return event.target || event.srcElement; }, preventDefault: function (event) { //取消默认行为 if(event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } }, stopPropagation: function (event) { //阻止冒泡 if(event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } }};
可以像下面这样使用myEvent对象:
var btn = document.querySelector("button"); var handler = function (event) { var newEvent = myEvent.getEvent(event); //获取event对象 var target = myEvent.getTarget(event); //获得事件目标 alert('我被点击了'); myEvent.stopPropagation(newEvent); //取消冒泡 myEvent.preventDefault(newEvent); //取消默认事件 }; myEvent.addHandler(btn, "click", handler); //给btn添加点击事件handler myEvent.removeHandler(btn, "click", handler); //给btn移除点击事件handler
阅读全文
0 0
- 自己封装跨浏览器事件添加和删除函数
- JS事件封装函数,跨浏览器添加事件和删除事件
- JavaScript 跨浏览器添加和删除事件
- JavaScript跨浏览器的添加删除事件绑定函数
- JavaScript跨浏览器的添加删除事件绑定函数
- 跨浏览器事件的添加与删除
- js事件封装函数,js跨浏览器事件处理机制
- 【js事件详解】js事件封装函数,js跨浏览器事件处理机制
- 【js事件详解】js事件封装函数,js跨浏览器事件处理机制
- 添加和移除事件处理兼容各浏览器的封装(带详细注释)
- VC下添加和删除自己系统托盘图标,及托盘事件的响应
- 第14篇:angular动态添加和删除组件元素的封装函数
- 跨浏览器事件处理 封装EventUtil
- JS添加/绑定事件监听函数并传参数attachEvent和addEventListener兼容个浏览器
- js事件 封装方法(添加事件、删除事件、阻止冒泡、阻止默认行为)
- ReactJs 添加和删除onScroll事件。
- JavaScript中添加、删除、获得cookie值的函数封装
- 跨浏览器添加javascript事件处理
- poj 2388
- JavaWeb学习 Session
- JAVA 8函数式编程(五):收集器详解与自定义实现
- css hack 学习总结
- jQuery的简单实用
- 自己封装跨浏览器事件添加和删除函数
- JQuery EasyUI-datagrid用法,行编辑模式
- SpringMvc 拦截器介绍
- JRebel for IDEA
- 【爬虫】selenium解析网页
- DBUtils方法详解02
- php,两个数组合并,用哪个函数?
- 模拟实现strstr(c语言)
- 实训笔记1