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 相关文章推荐
window.open的功能全解析
Oct 10 Javascript
JavaScript基本对象
Jan 11 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
原始的js代码和jquery对比体会
Sep 10 Javascript
javascript屏蔽右键代码
May 15 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
Oct 15 Javascript
Vue键盘事件用法总结
Apr 18 Javascript
django使用channels2.x实现实时通讯
Nov 28 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 Javascript
js回调函数原理与用法案例分析
Mar 04 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 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类的使用 实例代码讲解
2009/12/28 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
浅谈php扩展imagick
2014/06/02 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
js中的面向对象入门
2017/03/06 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
python中的列表推导浅析
2014/04/26 Python
Python中文件遍历的两种方法
2014/06/16 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
详解python中@的用法
2019/03/27 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
你常见到的runtime exception
2016/09/05 面试题
酒店行政人事部经理职务说明书
2014/02/26 职场文书
法律六进活动方案
2014/03/13 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
2014年中秋寄语
2014/08/11 职场文书
银行授权委托书样本
2014/10/13 职场文书
红色经典电影观后感
2015/06/18 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript