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 相关文章推荐
JavaScript脚本语言在网页中的简单应用
May 13 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
Apr 08 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
Jul 09 Javascript
easyui datagrid 键盘上下控制选中行示例
Mar 31 Javascript
让人蛋疼的JavaScript语法特性
Sep 30 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Dec 14 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
详解react内联样式使用webpack将px转rem
Sep 13 Javascript
js模拟F11页面全屏显示
Sep 17 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 Javascript
vue+canvas实现拼图小游戏
Sep 18 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
多人战的战术与战略
2020/03/04 星际争霸
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
php格式文件打开的四种方法
2018/02/24 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
javascript基本语法分析说明
2008/06/15 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
angularjs基础教程
2014/12/25 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python 实现数组相减示例
2019/12/27 Python
Python中logger日志模块详解
2020/08/04 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
拾金不昧表扬信
2015/01/16 职场文书
留学推荐信怎么写
2015/03/26 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
任命书格式模板
2015/09/22 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书