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鼠标和滚轮事件
Jun 27 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
May 28 Javascript
JS实现弹性漂浮效果的广告代码
Sep 02 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
js 连续赋值的简单实现
Jun 13 Javascript
浅谈js常用内置方法和对象
Sep 24 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
AngularJS 异步解决实现方法
Jun 12 Javascript
JS分页的实现(同步与异步)
Sep 16 Javascript
layer.open 按钮的点击事件关闭方法
Aug 17 Javascript
手把手带你封装一个vue component第三方库
Feb 14 Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 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
Zend 输出产生XML解析错误
2009/03/03 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
详解uniapp的全局变量实现方式
2021/01/11 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
使用python去除图片白色像素的实例
2019/12/12 Python
python getopt模块使用实例解析
2019/12/18 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
德国拖鞋网站:German Slippers
2019/11/08 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
妇联主席先进事迹
2014/05/18 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
mysql的数据压缩性能对比详情
2021/11/07 MySQL