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 相关文章推荐
JQuery Tips(4) 一些关于提高JQuery性能的Tips
Dec 19 Javascript
两种常用的javascript数组去重方法思路及代码
Mar 26 Javascript
js特效,页面下雪的小例子
Jun 17 Javascript
js进行表单验证实例分析
Feb 10 Javascript
window.onerror()的用法与实例分析
Jan 27 Javascript
JQuery中Ajax的操作完整例子
Mar 07 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
JavaScript伪数组用法实例分析
Dec 22 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
Apr 28 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
vue.js click点击事件获取当前元素对象的操作
Aug 07 Javascript
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
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
javascript 触发事件列表 比较不错
2009/09/03 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
Vue.use源码分析
2017/04/22 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
Python 初始化多维数组代码
2008/09/06 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
python中实现k-means聚类算法详解
2017/11/11 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
春节联欢晚会主持词
2014/03/24 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
大学生党性分析材料
2014/12/19 职场文书
英语导游词
2015/02/13 职场文书
2019年大学推荐信
2019/06/24 职场文书
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫