欢迎来到代码驿站!

jquery

当前位置:首页 > 网页前端 > jquery

用jQuery实现的模拟下拉框代码

时间:2021-03-03 10:08:21|栏目:jquery|点击:
很多群员问了关于下拉框美化的问题,现打一个下拉框美化的制作过程,其实是模拟出来的下拉框。
问题1:为什么要模拟下拉框?
1,浏览器自带的 下拉框样式不好看。
2,在ie6下,下拉框的优先级大于层,经常导致下拉框显示在层的上面。
OK,明白这个问题后,我们就开始用jQuery制作模拟下拉框。

第一步:先搭建好结构
这是普通的下拉框代码:
XML/HTML代码
复制代码 代码如下:

<select name="abc" id="abc">
<option value="1">选项一</option>
<option value="2">选项二</option>
<option value="3">选项三</option>
<option value="4">选项四</option>
<option value="5">选项五</option>
<option value="6">选项六</option>
</select>

这个是模拟出来的:
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="#">选项一</a>
<ul class="CRselectBoxOptions">
<li class="CRselectBoxItem"><a href="#" class="selected" rel="1">选项一</a></li>
<li class="CRselectBoxItem"><a href="#" rel="2">选项二</a></li>
<li class="CRselectBoxItem"><a href="#" rel="3">选项三</a></li>
<li class="CRselectBoxItem"><a href="#" rel="4">选项四</a></li>
<li class="CRselectBoxItem"><a href="#" rel="5">选项五</a></li>
<li class="CRselectBoxItem"><a href="#" rel="6">选项六</a></li>
</ul>
</div>


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

第二步:构建效果
主要就是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;
});
/*点击任何地方关闭层*/
$(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需再刷新一下页面才能执行]

其实到这里已经算是完成了。为了方便利用,就做成插件吧。
http://demo.jb51.net/js/JQuery_select/demo3.html

完整实例打包下载

上一篇:jQuery实现的自定义弹出层效果实例详解

栏    目:jquery

下一篇:jQuery事件与动画基础详解

本文标题:用jQuery实现的模拟下拉框代码

本文地址:http://www.codeinn.net/misctech/73443.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有