对于不同的浏览器,事件响应会有一定的不同,所以我们为了更好的用户效果,必须要考虑好事件兼容性问题。

为了兼容不同的浏览器,我们可以自己编写一个事件对象,通过它的事件添加函数和删除函数来给元素添加/删除对象。

我们在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",

最新文章

  1. Ionic2学习笔记(9):访问本地设备
  2. Python操作Redis、Memcache、RabbitMQ、SQLAlchemy
  3. Shell编程基础教程1--Shell简介
  4. 爬虫技术(四)-- 简单爬虫抓取示例(附c#代码)
  5. POJ3126 Prime Path
  6. jdk1.5多线程Lock接口及Condition接口
  7. 使用VC++压缩解压缩文件夹
  8. RPC服务的发布订阅实现Thrift
  9. [BZOJ 4919]大根堆
  10. centos7黑客帝国装逼
  11. struts2 中的 addActionError 、addFieldError、addActionMessage的方法【转】
  12. 使用Log4net创建日志及简单扩展
  13. python实现简单购物车系统(练习)
  14. UBUNTU16.04 连接不了cn.archive.ubuntu.com
  15. c# 方法参数 params 的试用
  16. Python验证实现登陆功能以及用户锁定(文件存储)
  17. H3C路由器和交换机的一些记录
  18. POJ 1321 棋盘问题 (深搜)
  19. pinpoint插件开发实践
  20. Tangent space(切线空间)

热门文章

  1. 《Linux就该这么学》培训笔记_ch23_使用OpenLDAP部署目录服务
  2. linux shell提示输入 输错字符解决方法
  3. SQL Server ----- 生成sql 脚本
  4. 040 RabbitMq及数据同步02
  5. golang学习笔记--接口
  6. HashSet去重
  7. MySQL卸载与重装
  8. drf--频率组件
  9. Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合
  10. android的子线程切换到主线程