衆所周知(其實我才知道哎),在IE裏, select的option是不支持onclick事件的, 而在FF 和 OPERA 裏, option 是支持onclick事件的.
(safari彷佛也不支持,不過暫時我還不知道如何解決safari的問題.) javascript
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <script src="js/jquery-1.11.3.js"></script> 6 <title></title> 7 </head> 8 <body> 9 10 <select name="" id="qq" onchange="outputSelect()"> 11 <option value="1">qq</option> 12 <option value="2">bbb</option> 13 <option value="3">ccc</option> 14 </select> 15 <div> 16 <div class="con" style="display:none">111</div> 17 <div class="con" style="display:none">222</div> 18 <div class="con" style="display:none">333</div> 19 </div> 20 <script> 21 $(".con").eq(0).show(); 22 function outputSelect(){ 23 console.log("aa"); 24 var num =$("#qq").find("option:selected").index(); 25 console.log(num); 26 $(".con").hide(); 27 $(".con").eq(num).show().siblings().hide(); 28 } 29 30 console.log($("#qq").find("option:selected").val()); 31 var aa=$("#qq option:selected").val(); 32 console.log(aa); 33 </script> 34 </body> 35 </html>
下面的代碼演示了一種間接實現 option onclick的方法
注意:此方案只適用於 下拉方式的單選select.
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <html> 3 <head> 4 <title>select-option onclick </title> 5 <script type="text/javascript" > 6 7 function simOptionClick4IE(){ 8 var evt=window.event ; 9 var selectObj=evt?evt.srcElement:null; 10 // IE Only 11 if (evt && selectObj && evt.offsetY && evt.button!=2 12 && (evt.offsetY > selectObj.offsetHeight || evt.offsetY<0 ) ) { 13 14 // 記錄原先的選中項 15 var oldIdx = selectObj.selectedIndex; 16 17 setTimeout(function(){ 18 var option=selectObj.options[selectObj.selectedIndex]; 19 // 此時能夠經過判斷 oldIdx 是否等於 selectObj.selectedIndex 20 // 來判斷用戶是否是點擊了同一個選項,進而作不一樣的處理. 21 showOptionValue(option) 22 23 }, 60); 24 } 25 } 26 27 function showOptionValue(opt,msg){ 28 var now=new Date(); 29 var dt= (1900+now.getYear())+'-'+(now.getMonth()+1)+'-'+now.getDate()+ 30 ' '+now.getHours()+':'+now.getHours()+':'+now.getSeconds()+'.'+now.getMilliseconds(); 31 var resultZone=document.getElementById('reslut'); 32 resultZone.style.margin="10px"; 33 resultZone.innerHTML=dt +" 時,點擊了: " + (opt.text + ' = '+opt.value); 34 } 35 36 </script> 37 </head> 38 39 <body> 40 41 <select onclick="simOptionClick4IE()" > 42 <!-- 下面的 onclick="showOptionValue( this )" 是爲 ff 和 opera而準備 --> 43 <option value="1" onclick="showOptionValue( this )" >aaaaa</option> 44 <option value="2" onclick="showOptionValue( this )" >bbbbb</option> 45 <option value="3" onclick="showOptionValue( this )" >ccccc</option> 46 </select> 47 48 <div id="reslut" ></div> 49 </body> 50 </html>
才知道),在IE裏,select的option是不支持onclick事件的, 而在 FF 和 OPERA 裏, option 是支持onclick事件的. (彷佛也不支持,不過暫時我還不知道如何解決safari的問題.)html