文档章节

通过原生JS实现为元素添加事件的方法

码农般的学良
 码农般的学良
发布于 2016/11/24 14:57
字数 335
阅读 7
收藏 0

下面小编就为大家带来一篇通过原生JS实现为元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

自己写了一个为元素添加事件的方法,并封装到对象中。

说明:

id : 目标元素的ID

type: 事件的类型,注意的是不能加on

fn:事件处理程序

isBubble :规定事件流

代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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;

      }

 

    }

 

  }

调用方法:

?

1

2

3

4

5

6

7

8

9

10

//定义事件处理程序

 function msg(){

  alert(this.tagName)

 }

 

 //为目标元素绑定事件

 bindEvent.add('link','click',msg,false);

 

 //解除目标元素绑定的事件

 bindEvent.remove('link','click',msg,false);

以上这篇通过原生JS实现为元素添加事件的方法就是小编分享给大家的全部内容了

© 著作权归作者所有

共有 人打赏支持
码农般的学良
粉丝 1
博文 20
码字总数 23265
作品 0
通州
私信 提问
jQuery? 回归JavaScript原生API

如今技术日新月异,各类框架库也是层次不穷。即便当年漫山红遍的JQuery(让开发者,So Perfect!!)如今也有的大势。但JS原生API写法依旧;并且有时候只不过小写一个Demo,或者产品中只有少量...

jeffjade
2015/12/13
0
0
网站开发进阶(五十三)浅谈JS、Ajax、JQuery之间的关系

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunhuaqiang1/article/details/82530844 网站开发进阶(五十三)浅谈JS、Ajax、JQuery之间的关系 在项目开发过...

孙华强
09/08
0
0
说说在 Vue.js 中如何实现组件间通信(高级篇)

之前说过,可以使用 props 将数据从父组件传递给子组件。其实还有其它种的通信方式,下面我们一一娓娓道来。 1 自定义事件 通过自定义事件,我们可以把数据从子组件传输回父组件。子组件通过...

deniro
12/09
0
0
说说 Vue.js 的指令与事件

指令(Directives)带有前缀 ,比如 v-if、v-html、v-pre 等。指令的作用是当表达式的值改变时,相应地将某些行为应用到 DOM 上,我们以 v-if 为例: html: js: 这个例子中,当数据 show 的...

deniro
10/28
0
0
JS原生系列-DOM篇(扩展)

继续DOM的研究工作,我们扩展对dom api的学习! 1.介绍针对低级浏览器,能力的监测处理: 2.针对移动端,touch事件的介绍: 3.最后做几个网页实例! 4.ajax的介绍:ajax输出json格式文件 js...

透笔度
2015/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字: 作者:孙冬梅;以前读韩国前总统朴槿惠的著作《绝望锻炼了我》时,里面有一句话令我印象深刻,她说“在我最困难的时期,...

原创小博客
30分钟前
0
0
JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
47分钟前
13
0
Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务

Xftp传输文件 如果已经通过Xshell登录到服务器,此时可以使用快捷键ctrl+alt+f 打开Xftp并展示Xshell当前的目录,之后直接拖拽传输文件即可。 pure-ftpd搭建ftp服务 pure-ftpd要比vsftp简单,...

野雪球
49分钟前
1
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
今天
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部