<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>跨浏览器的事件处理程序</title>
</head>
<body><input type="button" value="click me" id="myBtn"/><input type="button" value="解除" id="unlisten"/><script>function $(id){return document.getElementById(id);}var EventUtil={fnCount:0,fnData:{},addHandler:function(element,type,handler){this.fnCount++;handler.fid = this.fnCount;var _fn = handler;handler = function(){_fn.call(element);};this.fnData[this.fnCount] = handler;if(element.addEventListener){element.addEventListener(type,handler,false);}   else if(element.attachEvent){element.attachEvent("on"+type,handler);}   else {element["on"+type]=handler;}},removeHandler:function(element,type,handler){handler = this.fnData[handler.fid];if(element.removeEventListener){element.removeEventListener(type,handler,false);}else if(element.detachEvent){element.detachEvent("on"+type,handler);}else{element["on"+type]=null;}}}var btn=$("myBtn");var unbtn = $('unlisten');var bindFn1=function(){alert(this.id);};var bindFn2=function(){alert('2');};EventUtil.addHandler(btn,"click",bindFn1);EventUtil.addHandler(btn,"click",bindFn2);//EventUtil.removeHandler(btn,"click",bindFn1);EventUtil.addHandler(unbtn,"click",function(){EventUtil.removeHandler(btn,"click",bindFn1);});</script>
</body>
</html>

原生JS实现跨浏览器的事件处理程序相关推荐

  1. javascript --- DOM0级、DOM2级、跨浏览器 的事件处理程序

    DOM0级事件处理程序: // 使用DOM0级方法指定的事件处理程序被认为是元素的方法 // 这个时候的事件处理程序是在元素的作用域中运行: <div id = "myBtn" ...

  2. 跨浏览器的事件处理程序

    我们第一个要创建的方法是addHandler() 它的职责是视情况分别使用DOM0级方法.DOM2级方法或者IE方法来添加事件.这个方法属于一个名叫EventUtil的对象.addHandler() ...

  3. JavaScript --- 跨浏览器的事件处理程序

    var EventUtil = {addHandler: function(element, type, handler) { // 添加事件处理程序if (element.addEventListe ...

  4. 一些js代码,自己备用的。高手不要笑话我。。(跨浏览器基础事件,浏览器检测,判断浏览器的名称、版本号、操作系统)...

    跨浏览器基础事件 View Code 1 //跨浏览器添加事件 2 function addEvent(obj, type, fn) { 3 if (obj.addEventListener) { 4 ...

  5. addevent()实现跨浏览器绑定事件

    绑定事件一般有三种方式:传统绑定事件,IE绑定事件,W3C绑定事件.传统绑定存在可读性问题,this问题,覆盖问题.为实现跨浏览器绑定事件,我们采用自定义方法addEvent().代码如下: //跨浏 ...

  6. IFE-16 addEventHandler跨浏览器实现事件绑定

    /** * addEventHandler方法 * 跨浏览器实现事件绑定 */ function addEventHandler(ele, event, hanlder) {if (ele.addEv ...

  7. JavaScript --- 跨浏览器的事件对象

    var EventUtil={addHandler: function(element, type, handler){ // 添加事件方法if (element.addEventListener){ ...

  8. js html颜色代码,原生js编写的浏览器安全色网页拾色器色盘 生成颜色代码

    原生js编写的浏览器安全色网页拾色器 by js.alixixi.com #abc-colorPicker .colorPick-close,#filter-colorPicker .colorPic ...

  9. 原生js、jq移入移出事件

    在原生js上移入移出共有两种 一种是冒泡的 鼠标移入或移出被选元素及其所有子元素就会触发 element.onmouseover = function(){alert("移入"); ...

最新文章

  1. ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`meiduo`.`
  2. LeetCode 542. 01 Matrix--C++解法--动态规划
  3. Unity Mathf 数学运算(C#)
  4. Excel中的VBA宏:每次划款前从总名册中同步用户数据到当前页
  5. java的this关键字理解
  6. 页面监听,一段时间内不操作网页,就自动跳转到登录页
  7. android studio 图表,Android Studio——记账本以及图表可视化实现
  8. linux 导出 excel文件名乱码,excel导出,文件名称中文乱码问题 · 大腿的博客
  9. 电商基础(一):跳出率和退出率
  10. EC地图编辑器(预览版)
  11. 推荐系统组队学习——推荐系统概述
  12. javascript开发中的封装模式(转)
  13. 基于HFSS的圆极化阵列天线设计
  14. 公众号运营实用小工具推荐
  15. 使用云函数+云调用,四步实现微信支付
  16. Gears Android WIFI/基站定位源代码分析
  17. docker访问宿主机文件目录
  18. MFC 显示对话框内鼠标单击点的坐标值
  19. Modern Family 开篇语
  20. python终端打印表格

热门文章

  1. 【数字信号处理】傅里叶变换性质 ( 共轭对称与共轭反对称图像示例 | 实序列中共轭对称是偶对称 | 实序列中共轭反对称是奇对称 )
  2. 【数字信号处理】序列傅里叶变换 ( 狄义赫利条件 | 序列傅里叶变换定义 )
  3. 【Android 高性能音频】Oboe 开发流程 ( Oboe 音频帧简介 | AudioStreamCallback 中的数据帧说明 )
  4. 【设计模式】适配器模式 ( 概念 | 适用场景 | 优缺点 | 外观模式对比 | 适配器模式相关角色 | 类适配器 | 对象适配器 | 实现流程 )
  5. nmon服务器监控工具的使用安装
  6. Let Me Count The Ways(Kickstart Round H 2018)
  7. 利用ConcurrentHashMap来实现一个ConcurrentHashSet
  8. How to Use Git
  9. Python: generator, yield, yield from 详解
  10. 关于Linux 是怎么来的,该如何去学