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的开源工具PACKER2.0.2
Nov 04 Javascript
use jscript List Installed Software
Jun 11 Javascript
img的onload的另类用法
Jan 10 Javascript
javascript 的Document属性和方法集合
Jan 25 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
Jun 05 Javascript
修改好的jquery滚动字幕效果实现代码
Jun 22 Javascript
javascript之Partial Application学习
Jan 10 Javascript
jquery实现动态改变div宽度和高度
May 08 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
javascript history对象详解
Feb 09 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抓取及分析网页的方法详解
2016/04/26 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
JS backgroundImage控制
2009/05/19 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
python基础教程之udp端口扫描
2014/02/10 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
基于Python函数和变量名解析
2019/07/19 Python
python实现邮件发送功能
2019/08/10 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
台湾旅游网站:灿星旅游
2018/10/11 全球购物
安全生产活动月方案
2014/03/09 职场文书
投标担保书范文
2014/04/02 职场文书
优秀班组长事迹
2014/05/31 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
辩护意见书
2015/06/04 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS