以编程方式切换Bootstrap 3导航栏

7

我在我的Bootstrap 3导航栏中使用了几个分组的项目,如下所示:

<nav class="navbar navbar-inverse navbar-fixed-top" id="toggleNav" role="navigation">
        <!-- 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="#">Brand name</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 navbar-right">
                <li>
                    <a href="javascript:logout();"><span class="glyphicon glyphicon-log-out"></span>&nbsp;Logout</a>
                </li>
                <li>
                    <a href="#" id="online-offline" toggle="offline"><span class="glyphicon glyphicon-off"></span>&nbsp;Go offline</a>
                </li>
            </ul>                
        </div><!-- /.navbar-collapse -->
    </nav> 

当我点击第二个项目(“Go offline”)时,我使用jquery调用模态窗口。在移动设备上,我必须先折叠菜单才能到达链接,然后当我点击该项目时,我的模态窗口会正确显示。

我需要实现的是,在显示模态窗口之前隐藏导航栏折叠。是否可以通过编程来切换导航栏折叠?我该如何做到这一点?

5个回答

16

9

在@Jahnux73的帮助下,我自己解决了这个问题。所以我需要做的唯一的事情就是添加:

data-toggle="collapse" data-target=".navbar-ex1-collapse"

我想要将导航栏切换到特定链接。因此,该链接现在看起来像下面这样:

<a href="#" id="online-offline" data-toggle="collapse" 
   data-target=".navbar-ex1-collapse" toggle="offline">
    <span class="glyphicon glyphicon-off"></span>&nbsp;Go offline
</a>

谢谢,这是我找到的所有解决方案中最好的方法。 - Wayne Wei

0

只需使用:

$('.collapse').collapse();

0

将自定义类添加到切换导航栏(me-toggle)中,因此切换变量具有真值:

   <a href="javascript:;" class="dropdown-toggle me-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
        <i class="icon-envelope-open"></i>
        <span class="badge badge-default"> 4 </span>


</a>
       <ul class="dropdown-menu ">
              <li class="external">
                <h3>You have<span class="bold">7 New</span> Messages</h3>
                <a href="app_inbox.html">view all</a>
                </li>
                <li>
                    item 1
                </li>
                <li>
                    item 2
                </li>
     </ul>

然后在点击导航栏事件中:

toggle: true;
    $('a.me-toggle').click(() => {
          toggle = !toggle;
        });

        $('.dropdown').on({
          "click": function(event) {            
          },
          "hide.bs.dropdown": function(event) {
            return toggle;
          }
      });

0
首先,在您的按钮标签中添加一个ID。
<button id="idToggleButton" type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">

给你的折叠 div 添加一个 id

<div id="divCollapse" class="collapse navbar-collapse navbar-ex1-collapse">

最后,当divCollapse可见时,您可以通过编程方式进行单击

if ($('#divCollapse').is(":visible")){
 $('#idToggleButton').click();
}

或者当它是不可见的时候

if (!$('#divCollapse').is(":visible")){
 $('#idToggleButton').click();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接