通过原生JS实现为元素添加事件的方法


Posted in Javascript onNovember 23, 2016

自己写了一个为元素添加事件的方法,并封装到对象中。

说明:

id : 目标元素的ID

type: 事件的类型,注意的是不能加on

fn:事件处理程序

isBubble :规定事件流

代码:

var bindEvent = {

    'add':function(id,type,fn,isBubble){

      var dom = document.getElementById(id);
      if(!isBubble) isBubble=false;
      if(dom.addEventListenner){
        dom.addEventListenner(type,fn,isBubble);
      }else if(dom.attachEvent){
        Transit = function(){
          fn.call(dom);
        }
        dom.attachEvent('on'+type,Transit);
      }else{
        dom['on'+type] = fn;
      }
    },
    'remove':function(id,type,fn,isBubble){
      var dom = document.getElementById(id);
      if(!isBubble) isBubble=false;
      if(dom.removeEventListenner){
        dom.removeEventListenner(type,fn,isBubble)
      }else if(dom.detachEvent){
        dom.detachEvent('on'+type,Transit)
      }else{
        dom['on'+type]=null;
      }

    }

  }

调用方法:

//定义事件处理程序
 function msg(){
  alert(this.tagName)
 }

 //为目标元素绑定事件
 bindEvent.add('link','click',msg,false);

 //解除目标元素绑定的事件
 bindEvent.remove('link','click',msg,false);

以上这篇通过原生JS实现为元素添加事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
屏蔽Flash右键信息的js代码
Jan 17 Javascript
javascript拓展DOM操作 prependChild insertAfert
Nov 17 Javascript
jquery.tmpl JQuery模板插件
Oct 10 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
Jun 14 Javascript
js限制文本框只能输入整数或者带小数点的数字
Apr 27 Javascript
JavaScript实现对下拉列表值进行排序的方法
Jul 15 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
基于Bootstrap table组件实现多层表头的实例代码
Sep 07 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
Oct 12 Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 Javascript
微信小程序开发一键登录 获取session_key和openid实例
Nov 23 #Javascript
JavaScript基于自定义函数判断变量类型的实现方法
Nov 23 #Javascript
JavaScript实现的CRC32函数示例
Nov 23 #Javascript
JavaScript 控制字体大小设置的方法
Nov 23 #Javascript
微信小程序  wx.request合法域名配置详解
Nov 23 #Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 #Javascript
自己封装的一个简单的倒计时功能实例
Nov 23 #Javascript
You might like
构建简单的Webmail系统
2006/10/09 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP goto语句用法实例
2019/08/06 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
python正则表达式之作业计算器
2016/03/18 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python实现飞机大战游戏
2020/10/26 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Pytorch之Variable的用法
2019/12/31 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
教育科研先进个人材料
2014/01/26 职场文书
通信研究生自荐信
2014/02/01 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
python内置模块之上下文管理contextlib
2022/06/14 Python