事件的绑定和解除,需要自己用js程序进行处理.这就是我今天带给大家的事件处理对象:
该对象已在IE6/7/8 火狐 opera 浏览器中测试通过
view sourceprint?01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<A href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target=_blank>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</A>">
02 <html xmlns="<A href="http://www.w3.org/1999/xhtml" target=_blank>http://www.w3.org/1999/xhtml</A>">
03 <head>
04 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
05 <title>960web</title>
06 </head>
07
08 <body>
09 <div id="a"></div>
10 <input type="button" id="b" value="测试"/>
11 <input type="button" id="c" value="解除绑定"/>
12 </body>
13
14 <script>
15 // 元素绑定函数
16 function $(id)
17 {
18 return document.getElementById(id);
19 }
20 //事件处理对象
21 function EventUtil(){
22 /**
23 * 绑定事件方法
24 * obj 绑定的页面对象
25 * EventType 绑定的事件 (click,mouseover等)
26 * Handler 处理该事件的函数
27 */
28 this.addEventHandler = function(obj,EventType,Handler)
29 {
30 //非IE浏览器处理方法
31 if(obj.addEventListener)
32 {
33 obj.addEventListener(EventType,Handler,false);
34 }
35 //IE浏览器处理方法
36 else if(obj.attachEvent)
37 {
38 obj.attachEvent('on'+EventType,Handler);
39 }
40 else
41 {
42 obj['on'+EventType] = Handler;
43 }
44 }
45 /**
46 * 解除绑定事件方法
47 * obj 解除绑定的页面对象
48 * EventType 解除绑定的事件 (click,mouseover等)
49 * Handler 要解除的该事件的处理函数,
50 */
51 this.removeEventHandler = function(obj,EventType,Handler)
52 {
53 //非IE浏览器处理方法
54 if(obj.removeEventListener)
55 {
56 obj.removeEventListener(EventType,Handler,false);
57 }
58 //IE浏览器处理方法
59 else if(obj.detachEvent)
60 {
61 obj.detachEvent('on'+EventType,Handler);
62 }
63 else
64 {
65 obj['on'+EventType] = Handler;
66 }
67 }
68 };
69
70 // 以下是示例代码
71 var e = new EventUtil();
72 // 注意如果所要绑定的事件处理过程注定要被解除的话,就必须指定函数名,在解除绑定时,要指定函数名.
73 e.addEventHandler($("b"),"click",add1);
74
75 e.addEventHandler($("c"),"click",function(event){
76 e.removeEventHandler($("b"),"click",add1);
77 });
78
79 function add1(e){
80 ev=e;
81 alert("123")
82 $("a").innerHTML="ok"
83 }
84 </script>
85 </html>
OK!