web-dev-qa-db-ja.com

Bootstrapコンポーネントを折りたたむと、クリックしてもメニューが閉じない

クリックしてメニューが非表示にならない場合、このコードは 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>

はい、取得しました:適切なライブラリがインストールされています:Bootstrapv3.0.3。JavaScriptエラーはなく、HTMLコードは有効です。

再現手順:bootstrap 3.0.3 Zipパッケージをダウンロードし、index.htmlファイルを作成し、ブートストラップ用のcssおよびjsを挿入します。上記のコードを入力してください。クリックしても閉じません。触れた。

それで、コードはメニューを隠すことを意図しているかどうか?

14

これはすべきです

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

これはリファレンス要旨です

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

18
winnyboy5

私は同じ問題を抱えていましたが、解決策はbootstrap.jsは2回以上参照されません。私はそれを自分のページに2回ロードしましたが、これにより説明された問題が発生しました。

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

2回以上読み込まないでください。

34
vt100

上記は、スクロールバーがナビゲーションに表示されることがある奇妙な動作を示していました。それはいくつかの派手なCSSからのものであるかもしれませんが、以下は私のためにそれを修正しました。

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

別のソリューション 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>
1
Stanislav

Jqueryとcssファイルの後にBootstrap.min.jsファイルがありました。私はそれを上に移動し、それは私のために働いた。

0
Subrat Saxena

私も同じ問題を抱えていました。スクリプト「hack」を使用しないでください。 jquery 2.1.4以前を使用してみてください。

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

^ .jsファイルが下にありすぎました。上記のように行を変更すると、応答ボタンもメニューを閉じます。

0
Oliver Edwards