用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需再刷新一下頁(yè)面才能執(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需再刷新一下頁(yè)面才能執(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需再刷新一下頁(yè)面才能執(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需再刷新一下頁(yè)面才能執(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 模擬雅虎首頁(yè)的點(diǎn)擊對(duì)話框效果
- jQuery模擬12306城市選擇框功能簡(jiǎn)單實(shí)現(xiàn)方法示例
- jQuery模擬html下拉多選框的原生實(shí)現(xiàn)方法示例
相關(guān)文章
JQuery 浮動(dòng)導(dǎo)航欄實(shí)現(xiàn)代碼
JQuery 浮動(dòng)導(dǎo)航欄實(shí)現(xiàn)代碼,具體的可以根據(jù)需要自己修改。2009-08-08jQuery中[attribute*=value]選擇器用法實(shí)例
這篇文章主要介紹了jQuery中[attribute*=value]選擇器用法,實(shí)例分析了[attribute*=value]選擇器的功能、定義及匹配給定的屬性包含某些值的元素的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12jQuery插件HighCharts繪制的基本折線圖效果示例【附demo源碼下載】
這篇文章主要介紹了jQuery插件HighCharts繪制的基本折線圖效果,結(jié)合實(shí)例形式分析了jQuery基于HighCharts插件繪制圖形的具體實(shí)現(xiàn)步驟與相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-03-03實(shí)現(xiàn)音樂播放器的代碼(html5+css3+jquery)
這篇文章主要講實(shí)現(xiàn)音樂播放器的代碼(html5+css3+jquery),需要的朋友可以參考下2015-08-08jquery無限級(jí)聯(lián)下拉菜單簡(jiǎn)單實(shí)例演示
這篇文章主要向大家推薦了一個(gè)jquery無限級(jí)聯(lián)下拉菜單簡(jiǎn)單實(shí)例演示,感興趣的小伙伴們可以參考一下2015-11-11