前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >带多选框的下拉列表「建议收藏」

带多选框的下拉列表「建议收藏」

作者头像
全栈程序员站长
发布2022-11-01 14:13:11
1.6K0
发布2022-11-01 14:13:11
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

之前想写一个带多选框的下拉列表,然后找相关的内容,发现大多都是用select写的,这种是默认的下拉列表样式,但有时候需要自己来写样式,这样用select就不合适了。

然后我就在csdn中无意间发现了一位博主(codingNoob,在此声明一下,他写了很多文章都不错,我还关注了!)是用li写的,只是没有多选框,然后我就用了一些他的代码,在加上自己的代码。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style>
body{padding:30px;font-family: "微软雅黑";}
li{list-style: none;}
*{padding:0;margin:0;}
#selector{
position:relative;
height:30px;
width:510px;
margin-left: 100px;
margin-top: 100px;
font-size:13px;
line-height:30px;
text-align:left;        			
user-select:none;
}
#selector select{display:none;} 
#selector .arrow{
position:absolute;right:5px;top:12px;display:block;height:0;width:0;
border-top:8px solid lightgreen;border-right:5px solid transparent;
border-left:5px solid transparent;
}
#selector .mr-selector{
display:block;height:30px;width:500px;
padding-left:10px;border:1px solid lightgreen;
cursor:default;
overflow: hidden;
}
#selector .select{display:none;width:510px;margin-top:-1px;border:1px solid lightgreen;}
#selector .select li{height:30px;line-height:30px;padding-left:10px;}
</style>
<link rel="stylesheet" href="xuankuang/iconfont.css" />
<link rel="stylesheet" href="xuankuang/demo.css" />
<script src="js/jquery-1.11.0.min.js"></script>
<title>带多选框的下拉列表</title>
</head>
<body>
<div id="selector">
<span class="mr-selector">请选择选项</span>
<span class="arrow"></span>
<ul class="select">
<li><i id="ki1" class="icon iconfont icon-duoxuankuang">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</i>请选择选项</li>
<li><i class="icon iconfont icon-duoxuankuang">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</i>选项内容一</li>
<li><i class="icon iconfont icon-duoxuankuang">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</i>选项内容二</li>
<li><i class="icon iconfont icon-duoxuankuang">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</i>选项内容三</li>
<li><i class="icon iconfont icon-duoxuankuang">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</i>选项内容四</li>
</ul>
</div>
<script>
(function(){
var selector = $("#selector");
var select = $("#selector .select");  //模拟select的ul选项
var mrSelector = $("#selector .mr-selector");
var li = $("#selector .select li"); //li选项
selector.click(function(eve){
eve.stopPropagation();   //阻止冒泡避免点击后消失    
});
mrSelector.click(function(){
select.toggle();
});
li.click(function(eve){
var ttt = $(mrSelector).text();
var index = $(this).index();               
eee = $(this).find('i').attr("class");
if(eee=="icon iconfont icon-duoxuankuang"){
$(this).find('i').attr("class","icon iconfont icon-duoxuankuang2");
if(index==0){
var text = $(this).text();  
mrSelector.text(ttt);      
}else if(index!=0){
var text = ttt+$(this).text();  
mrSelector.text(text);      
}
}else if(eee=="icon iconfont icon-duoxuankuang2"){
$(this).find('i').attr("class","icon iconfont icon-duoxuankuang");
}
});
$("body").click(function(){
select.hide();
});
}());
</script>
</body>
</html>

1、首先是下拉列表的样式:

2、然后我自己添加了多选框,可以点击选中,这个多选框是用了阿里巴巴矢量图库的图标,这个不错,有很多矢量图,可以选择然后加入购物车生成代码,很方便!

3、还有点击就会在上面的框里显示选中的一项的内容。但是这个有一个bug,就是选择取消的时候不能删除相应的文字。这个我暂时还没做出来,有哪位大神知道这个怎么做啊!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/203969.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档