JavaScript实现跨浏览器的添加及删除事件绑定函数实例


Posted in Javascript onAugust 04, 2015

本文实例讲述了JavaScript实现跨浏览器的添加及删除事件绑定函数。分享给大家供大家参考。具体如下:

IE 的事件绑定函数是 attachEvent;而 Firefox, Safari 是 addEventListener;Opera 则两种都支持。使用jQuery就可以使用简单的bind(),或者$().click()之类的函数解决,而如果不使用JavaScript框架的时候,大家可是使用下面的封装bind()函数。

添加事件绑定 bind()

/************************************
* 添加事件绑定
* @param obj  : 要绑定事件的元素
* @param type : 事件名称。不加 "on". 如 : "click" 而不是 "onclick".
* @param fn  : 事件处理函数
************************************/
function bind( obj, type, fn ){
  if( obj.attachEvent){
    obj['e'+type+fn]= fn;
    obj[type+fn]=function(){
     obj['e'+type+fn]( window.event);
    }
    obj.attachEvent('on'+type, obj[type+fn]);
  }else
    obj.addEventListener( type, fn,false);
}

例如给document添加一个点击事件:

var fn=function(){
  alert("Hello, World!!");
};
bind(document,"click", fn);

删除事件绑定 unbind()

unbind()对于上面的bind()函数

/************************************
* 删除事件绑定
* @param obj : 要删除事件的元素
* @param type : 事件名称。不加 "on". 如 : "click" 而不是 "onclick"
* @param fn : 事件处理函数
************************************/
function unbind( obj, type, fn ){
  if( obj.detachEvent){
    obj.detachEvent('on'+type, obj[type+fn]);
    obj[type+fn]=null;
  }else
    obj.removeEventListener( type, fn,false);
}

例如删除第一个绑定的document点击事件:

unbind(document,"click",fn);

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JS实现打开本地文件或文件夹
Mar 09 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
理解js回收机制通俗易懂版
Feb 29 Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
vuex 项目结构目录及一些简单配置介绍
Apr 08 Javascript
react-native 圆弧拖动进度条实现的示例代码
Apr 12 Javascript
vue v-for 使用问题整理小结
Aug 04 Javascript
p5.js临摹动态图形的方法
Oct 23 Javascript
vue如何实现动态加载脚本
Feb 05 Javascript
js异步接口并发数量控制的方法示例
Nov 22 Javascript
如何实现vue的tree组件
Dec 03 Vue.js
jquery控制显示服务器生成的图片流
Aug 04 #Javascript
JavaScript实现LI列表数据绑定的方法
Aug 04 #Javascript
用js编写的简单的计算器代码程序
Aug 04 #Javascript
javascript记住用户名和登录密码(两种方式)
Aug 04 #Javascript
js实现简易的单数字随机抽奖(0-9)
Mar 19 #Javascript
JavaScript运动减速效果实例分析
Aug 04 #Javascript
JavaScript仿静态分页实现方法
Aug 04 #Javascript
You might like
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
JS实现简易日历效果
2021/01/25 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
Pytorch之contiguous的用法
2019/12/31 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
2014年五四青年节活动方案
2014/03/29 职场文书
安全技术说明书
2014/05/09 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
村委会贫困证明范本
2014/09/17 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
Spring Boot实现文件上传下载
2022/08/14 Java/Android