經過原生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實現爲元素添加事件的方法就是小編分享給你們的所有內容了

相關文章
相關標籤/搜索