addEventListener兼容性问题

FF和Chrome只支持addEventListener
addEventListener(click,fn,false);(true是捕获/false事件冒泡)
移除:removeEventListener

ie只支持attachEvent
attachEvent(onclick,fn);/移除:detachEvent
问题:attachEvent的this指向是window(用call),IE后绑定的事件先调用,顺序有问题

解决方法:

函数封装:

function addEvent(obj,ev,fn) //obj为要绑定事件的元素,ev为要绑定的事件,fn为绑定事件的函数
{if(obj.addEventListener){obj.addEventListener(ev,fn,false);}else if(obj.attachEvent){obj[ev+fn] = function(){fn.call(obj);}obj.attachEvent("on" + ev,obj[ev+fn]);}else {obj['on'+type]=fn;}}
function removeEvent(obj,ev,fn)
{if(obj.removeEventListener){obj.removeEventListener(ev,fn);}else if(obj.detachEvent){obj.detachEvent("on" + ev, obj[ev+fn]);}}else {obj['on'+type]=null;}}

addEventListener兼容性问题相关推荐

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

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

  2. 详解JS中的事件机制(带实例)

    2019独角兽企业重金招聘Python工程师标准>>> 1. 事件冒泡与事件捕获 事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发生顺序)的问题 ...

  3. MySQL之MYISAM和INODB

    本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力. [TOC] Mysql之MYISAM.INODB的区别 MySQL ...

  4. 【总结】IE和Firefox的Javascript兼容性总结

    长久以来JavaScript兼容性一直是Web开发者的一个主要问题.在正式规范.事实标准以及各种实现之间的存在的差异让许多开发者日夜煎熬.为此,主要从以下几方面差异总结IE和Firefox的Javas ...

  5. android accessibility 模拟键盘事件_H5 键盘兼容性小结

    在 H5 项目中,我们会经常遇到页面中存在单个甚至多个 input/textarea 输入框与底部固定元素的布局情况.在 input/textarea 输入框获取焦点时,会自动触发键盘弹起,而键盘弹出 ...

  6. addeventlistener事件第三个参数_简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序...

    这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 javascript给DOM绑定事件处理函数总的来说有2种方式:在htm ...

  7. web前端兼容性面试题汇总!

    web前端兼容性面试题汇总 一.html部分 1.H5新标签在IE9以下的浏览器识别 html5shiv.js下载地址 2.ul标签内外边距问题ul标签在IE6\IE7中,有个默认的外边距,但是在IE ...

  8. 添加事件的兼容性写法

    通常,我们为某个控件元素添加事件时,用的是: 1 ele.οnclick=fn1(){}; 2 或者 3 ele.οnclick=fn1; //此时不需要加括号,调用的是整个方法而不是return的结 ...

  9. 移动端与pc端的区别 及 ios的 兼容性问题

    前言:这里移动端主要指 hybrid app 中的H5页面.app 中对页面 样式和功能 的需求会更精细一点. 1.适配: 手机端的尺寸多样,3.5英寸的 iPhone4应该是最小的,只要考虑 兼容到 ...

  10. android 如何判断h5页面是否加载完成_H5 键盘兼容性小结

    " 我们经常需要填写表单,键盘的行为存在各种差异." 在 H5 项目中,我们会经常遇到页面中存在单个甚至多个 input/textarea 输入框与底部固定元素的布局情况.在 in ...

最新文章

  1. poj2356(抽屉原理)
  2. 深圳出台数据中心PUE新政,或将开启千亿级节能市场
  3. canvas画布属性globalAlpha 和 createRadialGradient函数出现的设置问题
  4. php网页标点前置,为什么在网页里,标点符号跑到行首了呢?_html/css_WEB-ITnose
  5. android下创建文件夹和修改其权限的方法
  6. 【链接】Solr的Filed中indexed与stored属性
  7. 【shell】shell-grep -v 排除多个输出结果
  8. 英语四级考试计算机游戏,2017年6月英语四级作文练习:大学生玩游戏
  9. mysql less2,实测Aurora Serverless MySQL
  10. iOS蓝牙开发(一)蓝牙相关基础知识
  11. c++ 取模和求余运算
  12. 计算机u盘能直接拨出吗,电脑怎么直接拔出U盘而不丢失数据|电脑可以不用弹出设备直接拔出U盘吗...
  13. 系统工程原理——指标权重的确定方法
  14. 转:我的创业梦想,一个关于照片的网站
  15. 什么是超图(Hypergraph)网络?
  16. Mysql查询当天,本周,本月所有数据记录
  17. 欧阳娜娜玩起“创可贴”,这次造型可以跟周冬雨相提并论了
  18. win10安装winmerge 启动出错
  19. TCP/IP网络编程之基于TCP的服务端/客户端(一)
  20. 捆绑软件?锁定主页?这4个地方可以下载到绝对纯净的Windows系统

热门文章

  1. Android开发——项目实例(一)迷你背单词软件
  2. 新路由3 newifi d2 潘多拉PandoraBox固件,带鸡血驱动
  3. 正确区分LJMP、AJMP、SJMP、JMP指令()
  4. 用fft对信号进行频谱分析实验报告_【鼎阳硬件智库原创︱测试测量 】基于全数字中频技术频谱分析仪的工作原理...
  5. BoundsChecker使用
  6. 电力猫服务器的网页,电力猫是如何工作的?
  7. 白话理解傅里叶变换原理(时域频域)
  8. wps里为什么没有华文楷体_是谁动了我的字体?为什么Word或PPT换台电脑打开字体就变了呢?...
  9. 将SolidWorks物料清单导出到Excel时可带缩略图了!
  10. python for maya教程_Python for Maya 教程 – Artist Friendly Programming