通过原生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判断单个复选框是否被选中的代码
Sep 03 Javascript
js 获取服务器控件值的代码
Mar 05 Javascript
Jquery替换已存在于element上的event的方法
Mar 09 Javascript
解决jquery的.animate()函数在IE6下的问题
Dec 03 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
Aug 12 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
May 31 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
Jul 21 Javascript
JavaScript闭包和范围实例详解
Dec 19 Javascript
微信小程序实现拖拽功能
Sep 26 Javascript
Vue路由对象属性 .meta $route.matched详解
Nov 04 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
php微信支付接口开发程序
2016/08/02 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
Dom操作之兼容技巧分享
2011/09/20 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
vue实现公共方法抽离
2020/07/31 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
python随机生成指定长度密码的方法
2015/04/04 Python
Python中处理时间的几种方法小结
2015/04/09 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
增大python字体的方法步骤
2020/07/05 Python
python实现取余操作的简单实例
2020/08/16 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
土木工程专业自荐信
2013/10/04 职场文书
生物制药专业求职信
2014/03/11 职场文书
检讨书大全
2015/01/27 职场文书
天坛导游词
2015/02/02 职场文书
小学校长个人总结
2015/03/03 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
入党自传范文2015
2015/06/26 职场文书
详解Laravel制作API接口
2021/05/31 PHP