通过原生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 相关文章推荐
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
js字符串截取函数slice、substring和substr的比较
May 17 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
js简单判断flash是否加载完成的方法
Jun 21 Javascript
Node.js常用工具之util模块
Mar 09 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
写给小白看的JavaScript异步
Nov 29 Javascript
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
微信小程序保存多张图片的实现方法
Mar 05 Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
使用p5.js临摹动态图形
Oct 23 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
laydate时间日历插件使用方法详解
2018/11/14 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
js实现随机数小游戏
2019/06/28 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
Python 命令行非阻塞输入的小例子
2013/09/27 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
python numpy 按行归一化的实例
2019/01/21 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
技术总监岗位职责
2013/12/05 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
网络编辑岗位职责
2014/03/18 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技