用jQuery實(shí)現(xiàn)的模擬下拉框代碼
更新時(shí)間:2010年03月08日 18:21:57 作者:
用jQuery制作模擬下拉框 瀏覽器自帶的 下拉框樣式不好看。在ie6下,下拉框的優(yōu)先級(jí)大于層,經(jīng)常導(dǎo)致下拉框顯示在層的上面。
很多群?jiǎn)T問了關(guān)于下拉框美化的問題,現(xiàn)打一個(gè)下拉框美化的制作過程,其實(shí)是模擬出來的下拉框。
問題1:為什么要模擬下拉框?
1,瀏覽器自帶的 下拉框樣式不好看。
2,在ie6下,下拉框的優(yōu)先級(jí)大于層,經(jīng)常導(dǎo)致下拉框顯示在層的上面。
OK,明白這個(gè)問題后,我們就開始用jQuery制作模擬下拉框。
第一步:先搭建好結(jié)構(gòu)
這是普通的下拉框代碼:
XML/HTML代碼
<select name="abc" id="abc">
<option value="1">選項(xiàng)一</option>
<option value="2">選項(xiàng)二</option>
<option value="3">選項(xiàng)三</option>
<option value="4">選項(xiàng)四</option>
<option value="5">選項(xiàng)五</option>
<option value="6">選項(xiàng)六</option>
</select>
這個(gè)是模擬出來的:
XML/HTML代碼
<div class="CRselectBox">
<input type="hidden" value="" name="abc" id="abc"/> <!-- hidden 用來代替select的值 -->
<input type="hidden" value="" name="abc_CRtext" id="abc_CRtext"/> <!-- hidden 用來代替select的文本-->
<a class="CRselectValue" href="#">選項(xiàng)一</a>
<ul class="CRselectBoxOptions">
<li class="CRselectBoxItem"><a href="#" class="selected" rel="1">選項(xiàng)一</a></li>
<li class="CRselectBoxItem"><a href="#" rel="2">選項(xiàng)二</a></li>
<li class="CRselectBoxItem"><a href="#" rel="3">選項(xiàng)三</a></li>
<li class="CRselectBoxItem"><a href="#" rel="4">選項(xiàng)四</a></li>
<li class="CRselectBoxItem"><a href="#" rel="5">選項(xiàng)五</a></li>
<li class="CRselectBoxItem"><a href="#" rel="6">選項(xiàng)六</a></li>
</ul>
</div>
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
第二步:構(gòu)建效果
主要就是Jquery代碼:
JavaScript代碼
$(function(){
$(".CRselectBox").hover(function(){
$(this).addClass("CRselectBoxHover");
},function(){
$(this).removeClass("CRselectBoxHover");
});
$(".CRselectValue").click(function(){
$(this).blur();
$(".CRselectBoxOptions").show();
return false;
});
$(".CRselectBoxItem a").click(function(){
$(this).blur();
var value = $(this).attr("rel");
var txt = $(this).text();
$("#abc").val(value);
$("#abc_CRtext").val(txt);
$(".CRselectValue").text(txt);
$(".CRselectBoxItem a").removeClass("selected");
$(this).addClass("selected");
$(".CRselectBoxOptions").hide();
return false;
});
/*點(diǎn)擊任何地方關(guān)閉層*/
$(document).click(function(event){
if( $(event.target).attr("class") != "CRselectBox" ){
$(".CRselectBoxOptions").hide();
}
});
/*===================Test========================*/
$("#test").click(function(){
var value = $("#abc").val();
var txt = $("#abc_CRtext").val();
alert( "你本次選擇的值和文本分別是:" + value +" , "+txt );
});
})
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
其實(shí)到這里已經(jīng)算是完成了。為了方便利用,就做成插件吧。
http://demo.jb51.net/js/JQuery_select/demo3.html
完整實(shí)例打包下載
問題1:為什么要模擬下拉框?
1,瀏覽器自帶的 下拉框樣式不好看。
2,在ie6下,下拉框的優(yōu)先級(jí)大于層,經(jīng)常導(dǎo)致下拉框顯示在層的上面。
OK,明白這個(gè)問題后,我們就開始用jQuery制作模擬下拉框。
第一步:先搭建好結(jié)構(gòu)
這是普通的下拉框代碼:
XML/HTML代碼
復(fù)制代碼 代碼如下:
<select name="abc" id="abc">
<option value="1">選項(xiàng)一</option>
<option value="2">選項(xiàng)二</option>
<option value="3">選項(xiàng)三</option>
<option value="4">選項(xiàng)四</option>
<option value="5">選項(xiàng)五</option>
<option value="6">選項(xiàng)六</option>
</select>
這個(gè)是模擬出來的:
XML/HTML代碼
復(fù)制代碼 代碼如下:
<div class="CRselectBox">
<input type="hidden" value="" name="abc" id="abc"/> <!-- hidden 用來代替select的值 -->
<input type="hidden" value="" name="abc_CRtext" id="abc_CRtext"/> <!-- hidden 用來代替select的文本-->
<a class="CRselectValue" href="#">選項(xiàng)一</a>
<ul class="CRselectBoxOptions">
<li class="CRselectBoxItem"><a href="#" class="selected" rel="1">選項(xiàng)一</a></li>
<li class="CRselectBoxItem"><a href="#" rel="2">選項(xiàng)二</a></li>
<li class="CRselectBoxItem"><a href="#" rel="3">選項(xiàng)三</a></li>
<li class="CRselectBoxItem"><a href="#" rel="4">選項(xiàng)四</a></li>
<li class="CRselectBoxItem"><a href="#" rel="5">選項(xiàng)五</a></li>
<li class="CRselectBoxItem"><a href="#" rel="6">選項(xiàng)六</a></li>
</ul>
</div>
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
第二步:構(gòu)建效果
主要就是Jquery代碼:
JavaScript代碼
復(fù)制代碼 代碼如下:
$(function(){
$(".CRselectBox").hover(function(){
$(this).addClass("CRselectBoxHover");
},function(){
$(this).removeClass("CRselectBoxHover");
});
$(".CRselectValue").click(function(){
$(this).blur();
$(".CRselectBoxOptions").show();
return false;
});
$(".CRselectBoxItem a").click(function(){
$(this).blur();
var value = $(this).attr("rel");
var txt = $(this).text();
$("#abc").val(value);
$("#abc_CRtext").val(txt);
$(".CRselectValue").text(txt);
$(".CRselectBoxItem a").removeClass("selected");
$(this).addClass("selected");
$(".CRselectBoxOptions").hide();
return false;
});
/*點(diǎn)擊任何地方關(guān)閉層*/
$(document).click(function(event){
if( $(event.target).attr("class") != "CRselectBox" ){
$(".CRselectBoxOptions").hide();
}
});
/*===================Test========================*/
$("#test").click(function(){
var value = $("#abc").val();
var txt = $("#abc_CRtext").val();
alert( "你本次選擇的值和文本分別是:" + value +" , "+txt );
});
})
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
其實(shí)到這里已經(jīng)算是完成了。為了方便利用,就做成插件吧。
http://demo.jb51.net/js/JQuery_select/demo3.html
完整實(shí)例打包下載
您可能感興趣的文章:
- jquery模擬SELECT下拉框取值效果
- jQuery 文本框模擬下拉列表效果
- 用jQuery模擬select下拉框的簡(jiǎn)單示例代碼
- jQuery模擬下拉框選擇對(duì)應(yīng)菜單的內(nèi)容
- jquery 模擬類搜索框自動(dòng)完成搜索提示功能(改進(jìn))
- 模擬多級(jí)復(fù)選框效果的jquery代碼
- jquery模擬多級(jí)復(fù)選框效果的簡(jiǎn)單實(shí)例
- jquery 模擬雅虎首頁的點(diǎn)擊對(duì)話框效果
- jQuery模擬12306城市選擇框功能簡(jiǎn)單實(shí)現(xiàn)方法示例
- jQuery模擬html下拉多選框的原生實(shí)現(xiàn)方法示例
相關(guān)文章
基于JQuery的日期聯(lián)動(dòng)實(shí)現(xiàn)代碼
基于JQuery的日期聯(lián)動(dòng)實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-02-02
jQuery Pagination分頁插件_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
此jQuery插件為Ajax分頁插件,一次性加載,故分頁切換時(shí)無刷新與延遲,如果數(shù)據(jù)量較大不建議用此方法,因?yàn)榧虞d會(huì)比較慢。下面通過本文給大家分享jQuery Pagination分頁插件的使用方法及參數(shù)介紹,感興趣的朋友一起看看吧2017-07-07
淺析Js(Jquery)中,字符串與JSON格式互相轉(zhuǎn)換的示例(直接運(yùn)行實(shí)例)
這幾天,遇到了json格式在JS和Jquey的環(huán)境中,需要相互轉(zhuǎn)換,在網(wǎng)上查了一下,大多為缺胳膊少腿,也許咱是菜鳥吧,終于測(cè)試成功后,還是給初學(xué)者們一個(gè)實(shí)例吧2013-07-07
當(dāng)鼠標(biāo)移動(dòng)到圖片上時(shí)跟隨鼠標(biāo)顯示放大的圖片效果
當(dāng)鼠標(biāo)移動(dòng)到圖片上時(shí),跟隨鼠標(biāo)顯示放大顯示的圖片,具體效果情況截圖,另附送源碼,感興趣的朋友可以學(xué)習(xí)下哈2013-06-06
jQuery將表單序列化成一個(gè)Object對(duì)象的實(shí)例
下面小編就為大家?guī)硪黄猨Query將表單序列化成一個(gè)Object對(duì)象的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11

