javascript - 在其中单击时不要隐藏下拉列表

标签 javascript jquery html css twitter-bootstrap

我使用 bootstrap 制作了这个下拉菜单。问题是当我在其中单击或选中其中的复选框时,它会隐藏自己。除非在下拉列表外的某处单击,否则如何让它不关闭。 提前致谢!

<div class="ibox-tools">
    <a class="dropdown-toggle" data-toggle="dropdown" href="#" aria-expanded="true">
        <i class="fa fa-line-chart"></i>
    </a>

    <ul class="dropdown-menu dropdown-user" style="width:200px">
        @foreach(PKG_VLTROUTINE_GET_EXCHAGEINFO_Result cur in Model)
        {
            <li style="padding:5px">
                <strong>@cur.VLTNAME</strong>
                &nbsp;@cur.RATE
                <br />
                <small>@cur.VLTFULLNAME</small>
                <small>
                    (
                    @cur.RATEDIF
                    @if (cur.DIRECTION == 1)
                    {
                        <i style="color:#1ab394" class="fa fa-level-up text-navy"></i>
                    }
                    else
                    {
                        <i style="color:#ed5565" class="fa fa-level-down text-navy"></i>
                    }
                    )
                </small>
                <div class="MsSwitch MsSwitch-update">
                    <input data-evoldvall="-1" value="-1" type="checkbox" checked="" data-valtrue="-1" data-valfalse="" name="@cur.VLTNAME" class="evCheckBox">
                    <label for="@cur.VLTNAME"></label>
                </div>
                <li class="divider" style="margin:0px"></li>
            </li>
        }
    </ul>

最佳答案

删除数据属性 data-toggle="dropdown"并实现下拉菜单的打开/关闭可以完成这项工作。 首先处理链接上的点击以打开/关闭下拉菜单,如下所示:

$('a.dropdown').on('click', function () {
 $(this).parent().toggleClass('open'); 
});

然后等待下拉菜单外的点击像这样关闭它:

$('body').on('click', function (e) {
 if (!$('a.dropdown').is(e.target) && $('a.dropdown').has(e.target).length === 0 && $('.open').has(e.target).length === 0 ) { 
$('a.dropdown').parent().removeClass('open'); } });

关于javascript - 在其中单击时不要隐藏下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44275953/

相关文章:

javascript - Ajax:rest api 调用给出错误:未捕获的语法错误:意外的标记:

javascript - $(document).click() 在 iPhone 上无法正常工作。查询

javascript - ajax简单的js变量到php

javascript - 在 ajax 成功响应上调用 data-id

javascript - 拖动元素而不选择其他元素

javascript - 如何将作为函数调用参数一部分的变量传递给函数?

javascript - Angular 2.0.0 [隐藏] 在某些情况下无法运行

javascript - 如何从jquery事件函数返回变量值?

JQuery 使用下拉菜单选择多个 Div

javascript - 在 jQuery 中创建动态表单数据