无论如何,在Navbar中保持Bootstrap Dropdown打开

时间:2015-04-22 03:45:57

标签: javascript jquery css twitter-bootstrap twitter-bootstrap-3

我在页面加载期间打开的导航栏中嵌套了一个下拉菜单,方法是将open类添加到包含下拉菜单的li元素。

无论点击什么或用户点击页面,我希望此菜单保持打开状态。我已尝试在Stackoverflow.com上找到类似问题的不同解决方案,但它们都没有工作。它们似乎都涉及阻止点击事件的传播关闭菜单。我正在使用bootstrap v3.3.4。

EDIT 这是菜单布局:

<div id="navbar" class="navbar-collapse collapse">
    <ul class="nav navbar-nav">

        <li><a href="#" style="color:white;">menu1</a></li>

        <li class="dropdown open">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" id="catalogmenu" aria-expanded="false" style="color:white;">menu 2 <span class="caret"></span></a>
            <ul class="dropdown-menu" role="menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li class="divider"></li>
                <li class="dropdown-header">Nav header</li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
            </ul>
        </li>

        <li><a href="#" style="color:white;">menu3</a></li>

        <li><a href="#" style="color:white;">menu4</a></li>

        <li><a href="#" style="color:white;">menu5</a></li>
    </ul>
    <div class="navbar-form navbar-right">
        <div class="input-group">
            <input type="text" class="form-control" style="width:310px" placeholder="Search" aria-describedby="basic-addon2">
            <span class="input-group-addon" id="basic-addon2">go</span>
        </div>
    </div>
</div>

感谢。

编辑2 DanDavis在评论中的建议是基于我的测试的方法。在这种情况下,处理事件和格式化自己比依赖bootstraps本机格式和功能更容易。

2 个答案:

答案 0 :(得分:1)

这只使用css。 working demo

将一个类添加到下拉列表ul(.stay-open)

<ul class="dropdown-menu stay-open">

然后使用!important

应用样式显示块
.stay-open {display:block !important;}

答案 1 :(得分:-1)

我假设您正在使用自举下拉列表,请试一试:

$('li.dropdown').on({
    "shown.bs.dropdown": function() { this.close = false; },
    "click":             function() { this.close = true; },
    "hide.bs.dropdown":  function() { return this.close; }
});

以上实现将在再次单击时隐藏下拉列表。如果你不喜欢这种行为,你可以简单地删除前两行(显示.bs.dropdown并单击事件),然后只为hide.bs.dropdown事件返回false。

这是工作证明bootply

这是一个始终保持开放的工作证明bootply