通过原生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 面向对象 function类
May 13 Javascript
jquery URL参数判断,确定菜单样式
May 31 Javascript
jQuery中jqGrid分页实现代码
Nov 04 Javascript
jQuery版仿Path菜单效果
Dec 15 Javascript
前端轻量级MVC框架CanJS详解
Sep 26 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
jquery实现在光标位置插入内容的方法
Feb 05 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
深入浅析Vue.js中 computed和methods不同机制
Mar 22 Javascript
动态加载JavaScript文件的3种方式
May 05 Javascript
如何在现代JavaScript中编写异步任务
Jan 31 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
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHP性能测试工具xhprof安装与使用方法详解
2018/04/29 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
js正确获取元素样式详解
2009/08/07 Javascript
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
js实现进度条的方法
2015/02/13 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python数据类型详解(一)字符串
2016/05/08 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
老生常谈python中的重载
2018/11/11 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
Django admin组件的使用
2020/10/24 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
python 写一个水果忍者游戏
2021/01/13 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
2014年党员承诺书范文
2014/05/20 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
先进党支部事迹材料
2014/12/24 职场文书