通过原生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 相关文章推荐
node.js适合游戏后台开发吗?
Sep 03 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
Mar 14 Javascript
JavaScript实现瀑布流布局
Jun 28 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 Javascript
js实现一个猜数字游戏
Mar 31 Javascript
利用vueJs实现图片轮播实例代码
Jun 03 Javascript
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
Angular 表单控件示例代码
Jun 26 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
js自定义input文件上传样式
Oct 26 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
js实现弹幕飞机效果
Aug 27 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
五款PHP代码重构工具推荐
2014/10/14 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
javascript定义函数的方法
2010/12/06 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
分享JS表单验证源码(带错误提示及密码等级)
2020/01/05 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
使用python实现多维数据降维操作
2020/02/24 Python
python 绘制正态曲线的示例
2020/09/24 Python
使用python实现学生信息管理系统
2021/02/25 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
NFL官方在线商店:NFLShop
2020/07/29 全球购物
《太阳》教学反思
2014/02/21 职场文书
体操比赛口号
2014/06/10 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
Hive导入csv文件示例
2022/06/25 数据库