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>