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代码
Jul 20 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
Jan 19 Javascript
jQuery如何获取动态添加的元素
Jun 24 Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
纯js实现画一棵树的示例
Sep 05 Javascript
利用js编写网页进度条效果
Oct 08 Javascript
vue 标签属性数据绑定和拼接的实现方法
May 17 Javascript
Vue中错误图片的处理的实现代码
Nov 07 Javascript
js实现点击生成随机div
Jan 16 Javascript
深入了解JavaScript词法作用域
Jul 29 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
农民C键的运用技巧
2020/03/04 星际争霸
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
PHP eval函数使用介绍
2013/12/08 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
理解javascript异步编程
2016/01/27 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
小程序实现投票进度条
2019/11/20 Javascript
python实现查询IP地址所在地
2015/03/29 Python
MySQL最常见的操作语句小结
2015/05/07 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
django Serializer序列化使用方法详解
2018/10/16 Python
Django中的ajax请求
2018/10/19 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
python 实现图片裁剪小工具
2021/02/02 Python
2014年党支部书记工作总结
2014/12/04 职场文书
求职信格式范文
2015/03/19 职场文书
使用refresh_token实现无感刷新页面
2022/04/26 Javascript
python区块链实现简版工作量证明
2022/05/25 Python