【问题标题】:Bootstrap 3 : navbar dropdown menu doesn't disappear when i click else whereBootstrap 3:当我单击其他位置时,导航栏下拉菜单不会消失
【发布时间】:2017-02-04 00:37:49
【问题描述】:

我有一个导航栏,右侧有一个下拉菜单。在移动设备上单击切换按钮(3 条)时,将显示菜单并且图标消失。

问题是当我点击页面上的其他地方(例如:虚拟文本)时,菜单消失并且图标仍然隐藏。

我能做些什么来解决这个问题?

一个例子可以在:https://jsfiddle.net/2eqd8wra/

Thank you for your answers

【问题讨论】:

  • 你的小提琴工作正常,你的问题是什么?
  • 尝试调整输出的大小,直到出现 3 条按钮而不是用户图标,当您单击它时,它会提示“显示菜单”,再次单击并提示“隐藏菜单”。我的问题是,当我单击按钮以显示菜单然后单击页面上的其他位置菜单消失时,即使您再次将输出屏幕变大,您也无法找到它

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


【解决方案1】:

.....问题是当我点击页面上的其他地方(例如:虚拟文本)时,菜单消失并且图标仍然隐藏.....

通过参考w3school,使用此代码,它将解决问题:

<nav class="navbar navbar-inverse">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>                        
            </button>
            <a class="navbar-brand" href="#"> My Brand</a>
          </div>
          <div class="collapse navbar-collapse" id="myNavbar">
            <ul class="nav navbar-nav">
              <li class="active"><a href="#">Home</a></li>
              <li class="dropdown">
                <a class="dropdown-toggle" data-toggle="dropdown" href="#">Page 1 <span class="caret"></span></a>
                <ul class="dropdown-menu">
                  <li><a href="#">Page 1-1</a></li>
                  <li><a href="#">Page 1-2</a></li>
                  <li><a href="#">Page 1-3</a></li>
                </ul>
              </li>
              <li><a href="#">Page 2</a></li>
              <li><a href="#">Page 3</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
              <li><a href="#"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
              <li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
            </ul>
        </div>
      </div>
    </nav>

【讨论】:

    【解决方案2】:

    我的问题是我想在导航栏外点击时动态关闭下拉菜单,我可以通过添加 jquery 函数来解决这个问题

    $('#main-container').click(function (event) {
    
    var _opened = $(".navbar-collapse").hasClass("navbar-collapse") && $(".navbar-collapse").hasClass("in");
    if (_opened === true && !($(event.target).hasClass("navbar-toggle"))) {
      $("button.navbar-toggle").click();
    }
    });
    

    这个函数触发点击导航栏按钮,解决了我的问题

    感谢所有试图帮助我的人

    【讨论】:

      猜你喜欢
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多