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

下面小编就为你们带来一篇经过原生JS实现为元素添加事件的方法。小编以为挺不错的,如今就分享给你们,也给你们作个参考。一块儿跟随小编过来看看吧dom

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

说明:spa

id : 目标元素的ID.net

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

fn:事件处理程序htm

isBubble :规定事件流对象

代码:事件

?ci

1rem

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实现为元素添加事件的方法就是小编分享给你们的所有内容了

相关文章
相关标签/搜索