通过原生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 Ajax功能时需要注意的一个问题(内存溢出)
May 30 Javascript
删除条目时弹出的确认对话框
Jun 05 Javascript
javascript类型系统 Window对象学习笔记
Jan 07 Javascript
Angular.Js中ng-include指令的使用与实现
May 07 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
jQuery正则验证注册页面经典实例
Jun 10 jQuery
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
vue开发移动端底部导航条功能
Apr 08 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 Javascript
微信小程序接入vant Weapp组件的详细步骤
Oct 28 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学习 字符串课件
2008/06/15 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php检测useragent版本示例
2014/03/24 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
jquery.ui.draggable中文文档
2009/11/24 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
js验证上传图片的方法
2015/05/12 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
python从入门到精通(DAY 3)
2015/12/20 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
Python Series从0开始索引的方法
2018/11/06 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
经济系大学生求职信
2013/10/01 职场文书
学习计划书怎么写
2014/09/15 职场文书
环卫个人总结
2015/03/03 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python