自己用ul模拟实现下拉多选框,

模拟实现下拉多选框

效果如下


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <link rel="stylesheet" type="text/css" href="../js/plugins/layui/css/layui.css"/>
    <!-- 字体图标 -->
    <link rel="stylesheet" href="../assets/styles/style.css">

    <style>
        .main{
            padding: 100px;
            height: 500px;
            background-color: #fff;
        }
        .content{
            width: 400px;
        }
        .duoxuan{
            height: 30px;
            line-height: 30px;
            padding: 0 20px 0 14px;
            width: 500px;
            border: 1px solid #e5e7e9;
            border-radius: 4px;
            cursor: pointer;
            position: relative;
        }
        .duoxuan > span{
            display: inline-block;
            width: 100%;
            /* width: 300px; */
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .duoxuan > i {
            position: absolute;
            right: 10px;
            top: 5px;
        }
        .select-main{
            width: 500px;
            padding: 5px 0;
            border: 1px solid #188AE2;
            background-color: #fff;
            position: absolute;
            top: 130px;
            left: 100px;
            z-index: 9999;
            display: none;
        }
        .select-main > li{
            position: relative;
            cursor: pointer;
            padding: 0 10px;
        }
        .select-main >li.checked{
            /* color: red; */
        }
        .select-main > li:hover{
            background-color: #188AE2;
        }
        .select-main > li > span{

        }
        .select-main > li > i{
            display: none;
            position: absolute;
            top: 5px;
            right: 10px;
            color: #188AE2;
        }
        .select-main >li.checked > i{
            display: block;
        }

    </style>
</head>
<body>

    <div class="main">
        <div class="content">
            <div class="duoxuan">
                <span>张三</span>
                <i class="fa fa-sort-desc"></i>
            </div>
            <ul class="select-main">
                <li>
                    <span>每日施工计划</span>
                    <i class="fa fa-check"></i>
                </li>
                <li>
                    <span>项目部培训记录</span>
                    <i class="fa fa-check"></i>
                </li>
                <li>
                    <span>项目部车辆使用登记项目部车辆使用登记</span>
                    <i class="fa fa-check"></i>
                </li>
                <li>
                    <span>我的项目</span>
                    <i class="fa fa-check"></i>
                </li>
            </ul>

        </div>
    </div>

<script src="../assets/scripts/jquery.min.js"></script>

<script>

    /**
     *
     * 自己模拟select实现下拉多选
     */

    function stopPropagation(e) {
        if (e.stopPropagation)
            e.stopPropagation();//停止冒泡   非ie
        else
            e.cancelBubble = true;//停止冒泡  ie
    }

    $(‘.duoxuan‘).bind(‘click‘, function (e) {
        $(this).siblings(‘.select-main‘).show();
        //写要执行的内容....吥啦不啦
        stopPropagation(e);//调用停止冒泡方法,阻止document方法的执行
    });
    $(document).bind(‘click‘, function () {
        $(‘.select-main‘).hide();
    });

    $(‘.select-main >li‘).on(‘click‘,function (e) {
        $(this).toggleClass(‘checked‘);
//    var lis = $(‘.select-main >li.checked >span‘);
        var lis = $(this).parent(‘.select-main‘).children(‘li.checked‘).find(‘span‘);
        var val=‘‘;
        for(var i = 0;i<lis.length;i++){
            val += lis[i].innerHTML+‘,‘;
        }
        console.log(val);
        val = val.slice(0, -1);
        $(this).parent(".select-main").siblings(‘.duoxuan‘).children(‘span‘).html(val)
        stopPropagation(e);
    })

    $(‘body‘).click(function () {

        $(‘select-main‘).hide()
    })
</script>
</body>
</html>

原文地址:https://www.cnblogs.com/ybixian/p/9215297.html

时间: 2024-09-28 22:45:16

自己用ul模拟实现下拉多选框,的相关文章

JS下拉复选框的实现

<html>   <head>     <script src="jquery-1.7.2.min.js"></script>     <script src="jquery.easyui.min.js" ></script>     <link   rel="stylesheet" href="css/themes/metro/easyui.css"

angular2.x 下拉多选框选择组件

angular2.x - 5.x 的下拉多选框选择组件 ng2 -- ng5.最近在学angular4,经常在交流群看见很多人问 下拉多选怎么做... 今天就随便写的个. 组件源码 百度云   链接:https://pan.baidu.com/s/1dEHwKmt 密码: mhta 下面贴代码: 界面 引用  selectList  是 下拉框的数据列表 redSelList() 方法是获取 选择完成后的数据 <app-select-checkbox [itemList]="selectL

自定义实现 PyQt5 下拉复选框 ComboCheckBox

一.前言 由于最近的项目需要具有复选功能,但过多的复选框会影响界面布局和美观,因而想到把 PyQt5 的下拉列表和复选框结合起来,但在 PyQt5 中并没有这样的组件供我们使用,所以想要自己实现一个下拉复选框,主要就是继承 QComboBox 类,然后将复选框 QCheckBox 加入其中,并实现相应的功能. 最终实现的下拉复选框效果如下: 二.代码实现 1.主要方法 在 PyQt5 中,有几个主要的方法需要了解一下,方法名称和对应的含义如下: QtWidgets.QComboBox.setVi

联合县城市,采用ajax,而使用ul模拟select下拉

接待处代码 js //采用jquery展示鼠标放到省ul下拉显示 $("#province").hover(function(){ $("#province ul").toggle(); }) //使用jquery效果展示鼠标放到城市的ul下拉展示 $("#city").hover(function(){ $("#city ul").toggle(); }) //使用jquery效果展示鼠标放到区县的ul下拉展示 $(&quo

省市县级联,使用ajax,并且使用ul模拟select下拉

前台代码 js //使用jquery效果展示鼠标放到省份的ul下拉展示 $("#province").hover(function(){ $("#province ul").toggle(); }) //使用jquery效果展示鼠标放到城市的ul下拉展示 $("#city").hover(function(){ $("#city ul").toggle(); }) //使用jquery效果展示鼠标放到区县的ul下拉展示 $(&

Mutiselect下拉复选框(保存和设置默认选中项)

HTML代码 <asp:DropDownList ID="ddlWarehouseIds" runat="server" CssClass="ddl"></asp:DropDownList> <input type="hidden" name="<%#Eval("WarehouseNames")%>" id="hid_<%#Eva

selectpicker下拉多选框ajax异步或者提前赋值=》默认值

Bootstrap select多选下拉框赋值 success: function (data) { var oldnumber = new Array(); $.each(data, function (i) { oldnumber.push(data[i].id); }); $('#editcolor .selectpicker').selectpicker('val', oldnumber);//默认选中 $('#editcolor .selectpicker').selectpicker

下拉复选框

$('#beerId').combobox({ url: '/index.php/Admin/Beer/getBeer', valueField: 'id', textField: 'text', panelHeight: 'auto', multiple: true, formatter: function (row) { var opts = $(this).combobox('options'); return '<input type="checkbox" class=&

c# 下拉多选的实现

1.首先是个TextBox <asp:TextBox ID="txtREFERRINGDOC" Width="130" runat="server" CssClass="txt" onfocus="this.blur();" onclick="showDiv('divREFERRINGDOC','txtREFERRINGDOC');">▼</asp:TextBox>