【问题标题】:Programmatically toggle bootstrap 3 navigation bar以编程方式切换 bootstrap 3 导航栏
【发布时间】:2014-03-07 16:10:21
【问题描述】:

我在 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> 

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

我需要实现的是在显示模式之前隐藏导航栏折叠。是否可以以编程方式切换导航栏折叠?我该怎么做?

【问题讨论】:

    标签: jquery twitter-bootstrap bootstrap-modal


    【解决方案1】:

    正如你所说,事件将运行模式。

    因此,当您的模态(称为 yourModal )显示(显示之前)时,只需隐藏菜单:

    JS:

    $('.yourModal').on('show.bs.modal', function(){
        $('.navbar-collapse').collapse('hide');
    });
    

    这里是文档:

    http://getbootstrap.com/javascript/#collapse

    http://getbootstrap.com/javascript/#modals-usage

    【讨论】:

      【解决方案2】:

      在@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>
      

      【讨论】:

      • 谢谢。这是我找到的所有解决方案中最好的方法。
      【解决方案3】:

      添加自定义类来切换导航栏(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;
                }
            });
      

      【讨论】:

        【解决方案4】:

        只需使用:

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

        【讨论】:

          【解决方案5】:

          首先,在按钮标签中添加一个 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();
          }
          

          【讨论】:

            猜你喜欢
            • 2014-01-01
            • 2015-01-06
            • 2020-04-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-01-22
            • 1970-01-01
            • 2015-09-01
            相关资源
            最近更新 更多