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/JQuery显示或隐藏文本的方法
Feb 13 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
Jun 23 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
Jul 21 Javascript
AngularJS中$apply方法和$watch方法用法总结
Dec 13 Javascript
js使用原型对象(prototype)需要注意的地方
Aug 28 Javascript
React Native模块之Permissions权限申请的实例相机
Sep 28 Javascript
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 Javascript
实例讲解v-if和v-show的区别
Jan 31 Javascript
浅谈javascript错误处理
Aug 11 Javascript
浅析vue-router中params和query的区别
Dec 24 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内存溢出问题的解决方法
2013/06/25 PHP
php获取参数的几种方法总结
2014/02/18 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
AngularJS语法详解
2015/01/23 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
python方法生成txt标签文件的实例代码
2018/05/10 Python
Python3实现转换Image图片格式
2018/06/21 Python
python实现点对点聊天程序
2018/07/28 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Django实现学生管理系统
2019/02/26 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Python ini文件常用操作方法解析
2020/04/26 Python
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
警校毕业生自我评价
2014/04/06 职场文书
中职生求职信
2014/07/01 职场文书
门面房租房协议书
2014/12/01 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
教师外出学习心得体会
2016/01/18 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技