通过原生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 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
js location.replace与location.reload的区别
Sep 08 Javascript
读JavaScript DOM编程艺术笔记
Nov 15 Javascript
浅谈javascript中createElement事件
Dec 05 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
Oct 19 Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
利用node.js写一个爬取知乎妹纸图的小爬虫
May 03 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
Vue中props的详解
May 16 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
微信小程序开发一键登录 获取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/04/28 PHP
PHP获取页面执行时间的方法(推荐)
2016/12/10 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
素食餐饮项目创业计划书
2014/02/02 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
就业协议书怎么填
2014/09/15 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
初中教师个人总结
2015/02/10 职场文书
检讨书模板大全
2015/05/07 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL