Home  >  Article  >  Web Front-end  >  JS implements drop-down checkbox effect (code example)

JS implements drop-down checkbox effect (code example)

青灯夜游
青灯夜游Original
2018-09-20 15:29:166314browse

This chapter brings you the use of js to implement the drop-down check box effect (code example). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Let’s take a look at the effect first:

JS implements drop-down checkbox effect (code example)

Let’s take a look at the code:

HTML code:

<div>
        <select name="" id="lang1"></select>
        <ul id="ck1">
            <li>
                <label><input type="checkbox">HTML</label>
            </li>
            <li>
                <label><input type="checkbox">CSS</label>
            </li>
            <li>
                <label><input type="checkbox">JavaScript</label>
            </li>
            <li>
                <label><input type="checkbox">jQuery</label>
            </li>
            <li>
                <label><input type="checkbox">PHP</label>
            </li>
            <li>
                <label><input type="checkbox">MySQL</label>
            </li>
        </ul>
    </div>
    <hr><!--HTML结构不能变-->
    <div>
        <select name="" id="lang2"></select>
        <ul id="ck2">
            <li>
                <label><input type="checkbox">Java</label>
            </li>
            <li>
                <label><input type="checkbox">C#</label>
            </li>
            <li>
                <label><input type="checkbox">C++</label>
            </li>
            <li>
                <label><input type="checkbox">Pyhton</label>
            </li>
        </ul>
    </div>
    <input type="button" onclick="console.log({&#39;tag1&#39;:tag1,&#39;tag2&#39;:tag2,})" value="查看字段">

css code:

div {
    display: inline-block;
}

select {
    min-width: 200px;
    height: 25px;
    border: 1px solid #000;
}

ul {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #000;
}

label {
    display: block;
    padding: 2px 10px;
    white-space: nowrap;
}

ul li:hover {
    background-color: #aabbcc;
}

JavaScript code:

/**
     * [dropDownCk 下拉复选框]
     * @param  {[String]} boxId    [父级元素id]
     * @param  {[String]} selectId [下拉选id]
     * @param  {[String]} hiddenId [隐藏区域id]
     * @return {[Array]}          [description]
     */
    function dropDownCk(selectId,hiddenId) {

        var boxId = "#" + boxId,
            selectId = "#" + selectId,
            hiddenId = "#" + hiddenId;
        
        $(hiddenId).mouseleave(function(){ // 鼠标离开隐藏复选区域
            
            $(this).hide();
        
        });
        
        $(selectId).click(function() { // 切换显示与隐藏

            $(hiddenId).toggle();

        });

        var tagArr = []; // 接收复选字段数组

        $(selectId).html("<option checked=&#39;true&#39; style=&#39;display:none;&#39;>" + "请选择项目" + "</option>");

        $(hiddenId + &#39; label&#39;).find(&#39;input&#39;).click(function() { // 点击向数组添加元素

            if ($(this).is(&#39;:checked&#39;)) {

                tagArr.push($(this).parent().text());

                $(selectId).html("<option checked=&#39;true&#39; style=&#39;display:none;&#39;>" + tagArr.join(",") + "</option>");

            } else {

                tagArr.splice(tagArr.indexOf($(this).parent().text()), 1); // 删除对应元素

                if (tagArr.length == 0) {

                    $(selectId).html("<option checked=&#39;true&#39; style=&#39;display:none;&#39;>" + "请选择项目" + "</option>");

                } else {

                    $(selectId).html("<option checked=&#39;true&#39; style=&#39;display:none;&#39;>" + tagArr.join(",") + "</option>");

                }

            }

        });

        return tagArr;
    }

    var tag1 = dropDownCk("lang1","ck1");
    var tag2 = dropDownCk("lang2","ck2")

Note: When there are many options, you can define an array and insert it into HTML to implement drop-down options. You can refer to the writing method of three-level linkage: Three-level linkage examples of playing with javascript.

The above is the detailed content of JS implements drop-down checkbox effect (code example). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn