关于原生事件绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window有关问题

By odacash   at 2014-07-01   29 阅读   0 回复   0.0 希赛币
请点击下面回答中的"采纳为答案"按钮,选择贡献(希赛币)比率后,点击"确认结算"按钮。

     
合计0人 0%  

关于原生事件绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window问题

  在原生事件绑定中IE绑定中需要用到attachEvent,FF与chrome中需要用到addEventListener.

  attachEvent(事件,函数)

  例如:var oBtn = document.getElementById('button');

  oBtn.addachEvent('onclick',function(){

  alert('a');

  })

  oBtn.addachEvent('onclick',function(){

  alert('b');

  })

  addEventListener(事件,函数,false)

  例如:var oBtn = document.getElementById('button');

  oBtn.addEventListener('click',function(){

  alert('a');

  },false)

  oBtn.addEventListener('click',function(){

  alert('b');

  },false)

  上面大家可以看到运用事件绑定的时候,事件的区别 一个是用onclick 一个是用到click,所以FF与chrome中的事件是不带on,而IE是必须带on的

  由于出现兼容性的问题 需要封装函数

  function addEvent(obj,ev,fn){

  if(obj.attachEvent){

  //针对IE浏览器

  obj.attachEvent('on'+ev,fn)

  }else{

  //针对FF与chrome

  obj.addEventListener(ev,fn,false)

  }

  }

  所以上述的实例可以改写成

  addEvent(oBtn,'click',function(){

  alert('a');

  })

  addEvent(oBtn,'click',function(){

  alert('b');

  })

  但是函数中如果出现this的话

  例如:

  addEvent(oBtn,'click',function(){

  alert(this);

  })

  得到的结果是不一样的 this在IE中弹出的window,在FF与chrome中指代的是当前对象

  如果要用到当前对象需要对函数进一步改造

  addEvent(oBtn,'click',function(ev){

  var oEvent = ev||event;

  var that=oEvent.srcElement||oEvent.target;

  alert(that)

  })

  • 本问题标题:关于原生事件绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window有关问题
  • 本问题地址:http://www.educity.cn/wenda/146927.html

转载于:https://www.cnblogs.com/leo388/p/4464147.html

attachEvent与addEventlistener兼容性相关推荐

  1. addEventLinstener与attachEvent区别、兼容性问题

    addEventLinstener与attachEvent区别.兼容性问题 我们知道,绑定事件的方法一般是这样的: //对象.事件 = 处理函数 //例如: <input type=" ...

  2. attachEvent 与addEventListener到底有什么区别呢?

    2019独角兽企业重金招聘Python工程师标准>>> attachEvent 与addEventListener到底有什么区别呢?总结如下: 一.适应的浏览器版本不同 attach ...

  3. 原生js的attachEvent和addEventListener解决window.onload在一个页面只能执行一次的问题

    原生js的attachEvent和addEventListener解决window.onload在一个页面只能执行一次的问题 参考文章: (1)原生js的attachEvent和addEventLis ...

  4. JS:attachEvent和addEventListener方法

    <SCRIPT LANGUAGE="JavaScript"> <!--     /**************************************** ...

  5. attachEvent 与 addEventListener的使用

    attachEvent与addEventListener区别 适应的浏览器版本不同,同时在使用的过程中要注意 attachEvent方法 按钮onclick addEventListener方法 按钮 ...

  6. js 添加事件 attachEvent 和 addEventListener 的用法

    一般我们在JS中添加事件,是这样子的 obj.οnclick=method 这种绑定事件的方式,兼容主流浏览器,但如果一个元素上添加多次同一事件呢? obj.οnclick=method1; obj. ...

  7. js 添加事件 attachEvent 和 addEventListener 的区别

    1.addEventListener  适用w3c标准方法addEventListener绑定事件,如下,事件的执行顺序和绑定顺序一致,执行顺序为method1->method2->met ...

  8. js添加事件 attachEvent 和addEventListener的用法

    一般我们在JS中添加事件,是这样子的: obj.onclick = method 这种绑定事件的方式,兼容主流浏览器,但是如果一个元素上添加多次同一个事件呢??? obj.onclick = meth ...

  9. js 添加事件 attachEvent 和addEventListener 的用法

    2019独角兽企业重金招聘Python工程师标准>>> 一般我们在JS中添加事件,是这样子的 1 obj.οnclick=method 这种绑定事件的方式,兼容主流浏览器,但如果一个 ...

  10. addEvent完美封装(addEventListener兼容性封装)

    addEventListener兼容各大浏览器封装 封装:addEvent.js /** * element 要绑定事件的对象,及HTML节点. * type 事件名称,attachEvent监听的事 ...

最新文章

  1. 【基础】EM 还是 REM?这是一个问题!
  2. Install 802.1x In Fedora
  3. 怎么自学python自动化测试-python自动化测试如何自动生成测试用例?
  4. 011_Vue自定义指令
  5. 微信遇到特殊服务器,解决微信网页授权,出现errcode:40163,errmsg:codebeenused,看似微信访问了2次这个回调接口的问题...
  6. 【干货】网络中常用的9个命令,超级实用
  7. autowired_@Autowired所有的东西!
  8. python自动化和教程_《手把手教你》系列练习篇之2-python+ selenium自动化测试(详细教程)...
  9. SpringCloud 实战:禁止直接访问后端服务
  10. web应用程序安全性测试_立即提高Web应用安全性的6种方法
  11. OPNET中使用外部文件
  12. el-descriptions引入代码中label不生效问题
  13. 龙兵智能名片多企业小程序V2.3.3-开源版
  14. JS_综合,全面性增删改查,多条件查询,排序,点击发货
  15. 舆情监测系统功能及作用
  16. ftp服务器设置上文件大小,ftp服务器文件上传大小设置
  17. Wampserver 80端口被占用
  18. Visual Studio 2017 version 15.9 官方最新版本下载(含那个啥码)
  19. c# winform 解决PictureBox 无法打印全部图片的问题
  20. python毕业设计能做什么工作_用python可以做什么毕业设计项目|融资公司的主要业务...

热门文章

  1. 计算机网络专业的论文题目,计算机网络技术专业毕业论文题目(3)
  2. 在线使用matlab,MATLAB在线版本使用介绍
  3. HTML期末学生大作业-最新QQ音乐、网易云音乐、酷狗音乐、虾米音乐、咪咕音乐网站html+css+javascript
  4. proxmox VE 4.4 增加USB 重定向功能
  5. Linux:linux终端命令关闭pycharm
  6. 智能小车寻迹c语言程序,智能小车循迹记时测速程序
  7. 这15个网站,为设计师提供用不完的免费素材
  8. 下载在线播放的电影,一个下载TS文件的工具,python小白。
  9. Mybatis插件之自动生成不使用默认的驼峰式
  10. 现金支票打印模板excel_施工表格填写不规范?500套最全施工资料表格模板,可直接套用|面层|分项...