通过原生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 相关文章推荐
JavaScript进阶教程(第四课第一部分)
Apr 05 Javascript
JavaScript Chart 插件整理
Jun 18 Javascript
JQuery最佳实践之精妙的自定义事件
Aug 11 Javascript
javascript smipleChart 简单图标类
Jan 12 Javascript
javascript快速排序算法详解
Sep 17 Javascript
JavaScript汉诺塔问题解决方法
Apr 21 Javascript
Backbone.js框架中Model与Collection的使用实例
May 07 Javascript
JS实现闭包中的沙箱模式示例
Sep 07 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
JS实现动态添加外部js、css到head标签的方法
Jun 05 Javascript
javascript如何实现create方法
Nov 04 Javascript
eslint+prettier统一代码风格的实现方法
Jul 22 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
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
php在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
2014/11/22 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
python简单判断序列是否为空的方法
2015/06/30 Python
Python pass详细介绍及实例代码
2016/11/24 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
团工委书记自荐书范文
2013/12/17 职场文书
成龙洗发水广告词
2014/03/14 职场文书
2014年师德承诺书
2014/05/23 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
运动会加油稿50字
2015/07/21 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书