单击时Bootstrap折叠组件未关闭菜单

时间:2014-02-01 09:25:56

标签: javascript html css twitter-bootstrap mobile

当我点击该菜单无法隐藏时,我发现此代码位于: http://getbootstrap.com/components/#navbar 但是不能正常工作。

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <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="index.php">
        <img class="desktop-logo" src="img/logo.png" alt="Company title">
        <img class="mobile-logo" src="img/logo-white.png" width="169" alt="">
      </a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class=""><a href="index.php">List</a></li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

是的,我得到了:安装了正确的库:Bootstrap v3.0.3。 没有javascript错误,HTML代码有效。

重现的步骤: 下载bootstrap 3.0.3 zip包,制作一个index.html文件,插入引导程序的css和js。 输入上面的代码,单击或触摸时它不会关闭。

代码是否意味着隐藏菜单?

7 个答案:

答案 0 :(得分:32)

我遇到了同样的问题,解决方法是确保bootstrap.js不会被多次引用。我在我的页面中加载了两次,这呈现了描述的问题。

    <script src="/js/bootstrap.min.js"></script>

不要多次加载!

答案 1 :(得分:16)

这应该

<script>
$(document).on('click',function(){
$('.collapse').collapse('hide');
})
</script> 

这是参考要点

https://gist.github.com/winnyboy5/8750551

答案 2 :(得分:1)

上面显示了一个奇怪的行为,有时滚动条会出现在导航栏上。这可能来自一些花哨的CSS,但下面为我修好了。

$(document).on('click',function(e){
  if($('#bs-example-navbar-collapse-1').hasClass('in')){
    $('.collapse').collapse('hide'); 
  }
})

答案 3 :(得分:1)

还有另一个解决方案here,当有子菜单时也可以使用。

<script>
$(document).on('click','.navbar-collapse.in',function(e) {
    if( $(e.target).is('a') && $(e.target).attr('class') != 'dropdown-toggle' ) {
        $(this).collapse('hide');
    }
});
</script>

答案 4 :(得分:0)

我遇到了同样的问题。不要使用脚本“hack”。只是尝试使用jquery 2.1.4或更早版本。

答案 5 :(得分:0)

<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<script src="js/bootstrap.min.js"></script>

^我的.js文件太远了。将您的行更改为如上所示,响应按钮也应该关闭菜单。

答案 6 :(得分:0)

我在jquery和css文件之后有了Bootstrap.min.js文件。我将其移到上方,对我有用。