自定义事件

 1 window.onload = function(){
 2     var oDiv = document.getElementById('div1');
 3     var oSpan = document.getElementById('span1');
 4     
 5     bindEvent(oDiv , 'click',function(){
 6         alert(1);
 7     });
 8     
 9     bindEvent(oDiv , 'click',function(){
10         alert(2);
11     });
12     
13     bindEvent(oSpan , 'show',function(){
14         alert(3);
15     });
16     
17     bindEvent(oSpan , 'show',function(){
18         alert(4);
19     });
20     
21     bindEvent(oSpan , 'hide',function(){
22         alert(5);
23     });
24     
25     
26     fireEvent(oSpan , 'show');  //3 , 4
27     
28 };
29 
30 function bindEvent(obj,events,fn){
31     //obj : 楼层
32     //events : 书架
33     //fn : 一本书
34     
35     obj.listeners = obj.listeners || {};
36     obj.listeners[events] = obj.listeners[events] || [];
37     
38     obj.listeners[events].push( fn );
39     
40     
41     if(obj.addEventListener){
42         obj.addEventListener(events,fn,false);
43     }
44     else{
45         obj.attachEvent('on'+events,fn);
46     }
47 }
48 
49 function fireEvent(obj,events){   //主动触发自定义事件
50     
51     for(var i=0;i<obj.listeners[events].length;i++){
52          obj.listeners[events][i]();
53     }
54     
55 }
1 <div id="div1">div</div>
2 <span id="span1">span</span>

 

posted @ 2016-10-24 10:44  蛋Mrs炒饭  阅读(147)  评论(0编辑  收藏  举报