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 相关文章推荐
任意位置显示html菜单
Feb 01 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
Aug 17 Javascript
关于ExtJS4.1:快捷键支持的问题
Apr 24 Javascript
jquery自动将form表单封装成json的具体实现
Mar 17 Javascript
关于使用axios的一些心得技巧分享
Jul 02 Javascript
JS设计模式之单例模式(一)
Sep 29 Javascript
Angularjs中date过滤器失效的问题及解决方法
Jul 06 Javascript
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
angular 实时监听input框value值的变化触发函数方法
Aug 31 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
使用Ajax实现无刷新上传文件
Apr 12 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
根德YB400的电路分析
2021/03/02 无线电
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
window.onload使用指南
2015/09/13 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
python计算牛顿迭代多项式实例分析
2015/05/07 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
如何解决安装python3.6.1失败
2020/07/01 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
求职简历自我评价范例
2014/03/12 职场文书
迎七一演讲稿
2014/09/12 职场文书
任命书怎么写
2015/03/02 职场文书
通知函格式范文
2015/04/27 职场文书
环保守法证明
2015/06/24 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
Django与数据库交互的实现
2021/06/03 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL
基于PyQt5制作一个群发邮件工具
2022/04/08 Python