用jQuery製作模擬下拉框

第一步:先搭建好結構

這是普通的下拉框代碼:

XML/HTML代碼
  1. <select name="abc" id="abc">  
  2.     <option value="1">選項一</option>  
  3.     <option value="2">選項二</option>  
  4.     <option value="3">選項三</option>  
  5.     <option value="4">選項四</option>  
  6.     <option value="5">選項五</option>  
  7.     <option value="6">選項六</option>  
  8. </select>  

這個是模擬出來的:

XML/HTML代碼
  1. <div class="CRselectBox">  
  2.     <input type="hidden" value=""  name="abc" id="abc"/> <!-- hidden 用來代替select的值 -->  
  3.     <input type="hidden" value=""  name="abc_CRtext" id="abc_CRtext"/> <!-- hidden 用來代替select的文本-->  
  4.     <a class="CRselectValue" href="#">選項一</a>  
  5.     <ul class="CRselectBoxOptions">  
  6.         <li class="CRselectBoxItem"><a href="#" class="selected" rel="1">選項一</a></li>  
  7.         <li class="CRselectBoxItem"><a href="#" rel="2">選項二</a></li>  
  8.         <li class="CRselectBoxItem"><a href="#" rel="3">選項三</a></li>  
  9.         <li class="CRselectBoxItem"><a href="#" rel="4">選項四</a></li>  
  10.         <li class="CRselectBoxItem"><a href="#" rel="5">選項五</a></li>  
  11.         <li class="CRselectBoxItem"><a href="#" rel="6">選項六</a></li>  
  12.     </ul>  
  13. </div>  

查看演示

第二步:構建效果

主要就是Jquery代碼:

JavaScript代碼
  1. $(function(){   
  2.     $(".CRselectBox").hover(function(){   
  3.         $(this).addClass("CRselectBoxHover");   
  4.     },function(){   
  5.         $(this).removeClass("CRselectBoxHover");   
  6.     });   
  7.     $(".CRselectValue").click(function(){   
  8.         $(this).blur();   
  9.         $(".CRselectBoxOptions").show();   
  10.         return false;   
  11.     });   
  12.     $(".CRselectBoxItem a").click(function(){   
  13.         $(this).blur();   
  14.         var value = $(this).attr("rel");   
  15.         var txt = $(this).text();   
  16.         $("#abc").val(value);   
  17.         $("#abc_CRtext").val(txt);   
  18.         $(".CRselectValue").text(txt);   
  19.         $(".CRselectBoxItem a").removeClass("selected");   
  20.         $(this).addClass("selected");   
  21.         $(".CRselectBoxOptions").hide();   
  22.         return false;   
  23.     });   
  24.     /*點擊任何地方關閉層*/  
  25.     $(document).click(function(event){   
  26.         if( $(event.target).attr("class") != "CRselectBox" ){   
  27.             $(".CRselectBoxOptions").hide();   
  28.         }   
  29.     });   
  30.   
  31.     /*===================Test========================*/  
  32.     $("#test").click(function(){   
  33.         var value = $("#abc").val();   
  34.         var txt = $("#abc_CRtext").val();   
  35.         alert( "你本次選擇的值和文本分別是:" + value +"  , "+txt );   
  36.     });   
  37. })  

查看演示

 

其實到這裏已經算是完成了。爲了方便利用,就做成插件吧。

 

查看完整版本演示     下載例子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章