javascript - Bootstrap 3 导航栏中的下拉菜单在切换后立即隐藏 - 显示

标签 javascript jquery twitter-bootstrap drop-down-menu

如 jsFiddle 中所示,我有一个带有 2 个下拉菜单的导航栏。第一个下拉列表中的链接会触发 JS 单击事件,我在其中手动显示第二个下拉列表。它有效,只是在显示后,第二个下拉菜单会自动并立即隐藏。我添加了一个提醒,让您有时间在第二个下拉列表隐藏之前看到它。

http://jsfiddle.net/xNkS5/8/

复制/粘贴 JsFiddle 代码:

    <div class="container">

        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse"
                data-target=".navbar-ex1-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="http://toujoursplus.be/">Menu</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav">
                <li class="dropdown">
                   <a id="DropDown1" href="#" class="dropdown-toggle" data-toggle="dropdown">my drop down 1 <b class="caret"></b></a>
                   <ul class="dropdown-menu">
                        <li><a id="SwitchLink">Switch to drop down 2</a></li>
                   </ul>
                </li>
                <li class="dropdown">
                   <a id="DropDown2" href="#" class="dropdown-toggle" data-toggle="dropdown">my drop down 2 <b class="caret"></b></a>
                   <ul class="dropdown-menu">
                        <li><a href="#">Foo</a></li>
                        <li><a href="#">Bar</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</nav>

JavaScript

$(document).ready(function() {
        $("#SwitchLink").click(function(e) {
            e.preventDefault();// prevent the default anchor functionality
            $('#DropDown2').dropdown('toggle');
            alert("wait here... see DropDown2 deployed, then close this alert and see it's gone.");
        });
    });

如果您想知道我为什么这样做:在我们的应用程序中,DropDown2 显示一个登录表单。有时,单击 DropDown1 中的菜单链接应该会显示登录表单。

jQuery 1.9.1 - Bootstrap 3.0.0 Chrome 和 Firefox 上都会发生。

我是 Bootstrap 新手,我确信我做错了。非常感谢您的帮助。 约翰。

最佳答案

试试这个方法:

同时停止事件传播。否则,它会导致执行 Bootstrap 的默认下拉列表处理,当您单击链接时,这会折叠所有下拉列表。

$(".SwitchLink").click(function(e) {
            e.preventDefault();
            e.stopPropagation();// prevent the default anchor functionality
            $('#DropDown2').dropdown('toggle');
            alert("wait here... see DropDown2 deployed, then close this alert and see it's gone.");
});

<强> Fiddle

关于javascript - Bootstrap 3 导航栏中的下拉菜单在切换后立即隐藏 - 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831757/

相关文章:

javascript - 如何将 select2 4.0 与 angularjs 一起使用,何时初始化它

jquery - $.get 在带有 PhoneGap 的 iPhone 模拟器中返回 "[object Document]"

javascript - Bootstrap Popover - 图像出现在错误的位置,直到第二次单击

javascript - 移动设备中的 Bootstrap 菜单错误

javascript - 悬停时不显示 Bootstrap 工具提示

php - 从 php 代码调用 javascript 函数函数未定义

Javascript:函数作为参数,可能性

javascript - 如何正确更新对象的状态(ReactJS + Redux)?

jquery - 使用 Chosen jQuery 插件进行前缀字符串匹配

JQuery 和 Phonegap 将本地存储中的数据保存在数组中