博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS-DOM2级事件对象跨浏览器处理(已封装)
阅读量:7084 次
发布时间:2019-06-28

本文共 2258 字,大约阅读时间需要 7 分钟。

1 var eventUill = { 2     //添加事件 3     addHander: function(element, type, handler) { 4         if(element.addEventListener) { 5             element.addEventListener(type, handler, false); 6         } else if(element.attachEvent) { 7             element.attachEvent('on' + type, handler); 8         } else { 9             element['on' + type] = handler;10         }11     },12     //移除事件13     removeHander: function(element, type, handler) {14         if(element.removeEventListener) {15             element.removeEventListener(type, handler, false);16         } else if(element.detachEvent) {17             element.detachEvent('on' + type, handler);18         } else {19             element['on' + type] = handler;20         }21     },22     //获取到拥有这个事件的标签名称——事件对象(如input)23     getEvent: function(event){24         return event?event:window.event;//注意:返回后需要调用。可配合nodeName,来单独获取到标签的名字。25     },26     //获取事件的类型27     getType: function(event){28         return event.type;//注意:返回后需要调用。29     },30     //获取事件来自于哪个元素31     getElement: function(event){32         return event.target || event.srcElement;33     },34     //阻止、取消事件的默认行为/属性发生35     preventDefault: function(event){36         if(event.preventDefault){37             event.preventDefault();38         }else{39             event.returnValue = null;40         }41     },42     //阻止冒泡行为43     stopPropagation: function(event){44         if(event.stopPropagation){45             event.stopPropagation();46         }else{47             event.cancelBubble = true;48         }49     }50     51     52     53     54 }
DOM2级事件对象的跨浏览器处理——js源码

遇到的小bug总结:

  1.   封装的库根本找不到,颜色都是灰的,说明代码是错的,通过在js中添加了一个var eventUill = {},建立了一个对象,html这里调用对象的addHander,
  2.   eventUill找不到,发现,引用外部库的js代码写在来调用库中函数的下边,根据文档流的优先级,说明还没有调出eventUill之前就执行函数了所以出错。那就把调用的外部库写到最上面,让他优先调用。
  3.   addEventLister不对,把ele改成了element,是不是以后写,这里也必须写element呢?全部改成element后变绿了,代码正确。
  4.   说element为空。那么element接受传过来的参数是空的,但是html中的btn处是没有问题的,我getElementById的代码也没有错。看来是老毛病又犯了。js写在html上面,获取id为btn的按钮,根据文档流,他还没有读到input的时候就去获取,你让他去哪里获取。找不到btn,自然传过去的是undefined。紧接着element就成null了。解决就是加上window。οnlοad=function(所有的js代码)调用id的代码写到html的下边。这也是js习惯上要放到body的后边的理由。

以下是测试时的html文件,DOM2级事件-跨浏览器处理.js就是上面的js源码。

            
dom2级事件跨浏览器处理-封装库
html

 

转载地址:http://dvmml.baihongyu.com/

你可能感兴趣的文章
浅谈 JavaScript 模块化编程
查看>>
thinkphp 自动验证学习
查看>>
Java 面试题:类加载-main()-构造代码块-构造器的执行顺序和关系。
查看>>
for与while循环、break跳出循环、continue结束本次循环、exit退出脚本
查看>>
mysql主从复制与读写分离
查看>>
四周第一次(2月26
查看>>
Python模块
查看>>
Windows2012、windows2016配置多用户登录
查看>>
VMware vSAN超融合虚拟化架构与NetApp FAS2620存储服务器虚拟化架构对比
查看>>
周期性任务计划
查看>>
Java多进程管道通信
查看>>
ipfs官方周刊,18期
查看>>
无线压力变送器的安装与标定方式!
查看>>
sever 2016部署web服务
查看>>
varnish使用yum安装及不同域名站点
查看>>
五分钟教会你分布式系统调用链监控
查看>>
VLAN与Trunk配置
查看>>
我的友情链接
查看>>
webservice调用报object is not an instance of declaring class错
查看>>
使用postfix发邮件被拒(UBE)的处理
查看>>