通过原生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 相关文章推荐
jQuery 标题的自动翻转实现代码
Oct 14 Javascript
javascript window.opener的用法分析
Apr 07 Javascript
JS网页播放声音实现代码兼容各种浏览器
Sep 22 Javascript
js获取url传值的方法
Dec 18 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
js实现复制功能(多种方法集合)
Jan 06 Javascript
详解React项目中碰到的IE问题
Mar 14 Javascript
微信小程序下拉菜单效果的实例代码
May 14 Javascript
详解Vuex下Store的模块化拆分实践
Jul 31 Javascript
javascript删除数组元素的七个方法示例
Sep 09 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
vue proxy 的优势与使用场景实现
Jun 15 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
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
DOM精简教程
2006/10/03 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
简单介绍Ruby中的CGI编程
2015/04/10 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
python tkinter基本属性详解
2019/09/16 Python
详解python itertools功能
2020/02/07 Python
Python class的继承方法代码实例
2020/02/14 Python
自我鉴定 电子商务专业
2014/01/30 职场文书
自我检讨报告
2015/01/28 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
迎新年主持词
2015/07/06 职场文书