1. 程式人生 > >同時為同一事件新增繫結兩個屬性

同時為同一事件新增繫結兩個屬性

同一事件可以同時觸發兩個屬性,如何實現呢?下面以點選事件為例,簡單介紹一下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title></title>
 6     <style>
 7         div{
 8         width:300px;
 9         height:300px;
10         background:red;
11         }
12 </style> 13 </head> 14 <body> 15 <div>給你點顏色看看</div> 16 </body> 17 <script> 18 var adiv=document.getElementsByTagName('div')[0] 19 //直接設定兩個事件屬性會覆蓋 20 //adiv.onclick=giveRed 21 //adiv.onclick=giveGreen 22 function
giveRed(){ 23 alert("紅色") 24 } 25 function giveGreen(){ 26 alert("綠色") 27 } 28 29 //事件繫結,給同一時間繫結多個事件 30 //事件物件.addEventListener('事件',函式,false) 31 //adiv.addEventListener('click',giveRed,false) 32 //adiv.addEventListener('click',giveGreen,false)
33 34 //移除事件繫結的樣式 35 //事件物件.addEventListener('事件',函式,false) 36 //adiv.removeEventListener('click',giveRed,false) 37 38 //相容繫結事件 39 function adda(obj,ev,func){ 40 //判斷一下函式是否存在,即簡介判斷是否是高階瀏覽器 41 if(obj.addEventListener){ 42 obj.addEventListener(ev,func,false) 43 }else{ 44 obj.attachEvent('on'+ev,func) 45 } 46 } 47 48 //相容取消繫結 49 function remove_add(obj,ev,func){ 50 //判斷一下函式是否存在,即簡介判斷是否是高階瀏覽器 51 if(obj.removeEventListener){ 52 obj.removeEventListener(ev,func,false) 53 }else{ 54 obj.detatachEvent('on'+ev,func) 55 } 56 } 57 58 //呼叫相容函式 59 adda(adiv,'click',giveRed) 60 adda(adiv,'click',giveGreen) 61 </script> 62 </html>