質問: ブートストラップ3の折りたたみメニューがクリックで閉じない 私はブートストラップ3から多かれ少なかれ標準的なナビゲーションを持っています<body data-spy="scroll" data-target=".navbar-collapse"> <!-- ---------- navigation ---------- --> <div class="navbar navbar-fixed-top" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">toggle navigation</span> </button> <a class="navbar-brand" href="index.html"> <img src="#"></a> </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right"> <li class="active"><a href="#home">home</a></li> <li><a href="#one">one</a></li> <li><a href="#two">two</a></li> <li><a href="#three">three</a></li> <li><a href="#four">four</a></li> </ul> </div> </div> </div> それはより小さな装置で普通に崩壊する。メニューボタンをクリックするとメニューが展開されますが、メニューリンクをクリックすると(またはそのことについてタッチすると)、メニューは開いたままになります。もう一度閉じるにはどうすればいいですか。
回答: githubのソリューションからこれを共有するために、これが一般的な答えでした。 https://github.com/twbs/bootstrap/issues/9013#issuecomment-39698247 $(document).on('click','.navbar-collapse.in',function(e) { if( $(e.target).is('a') ) { $(this).collapse('hide'); } }); これはドキュメントに配線されているので、ready()で行う必要はなく(メニューに動的にリンクを追加しても機能します)、メニューがすでに展開されている場合にのみ呼び出されます。メニューが開いてすぐに閉じると、メニューに「in」クラスがあることを確認できないという奇妙な点滅が報告されている人もいます。[update 2014-11-04]サブメニューを使用している場合、上記の問題が発生する可能性があるため、上記の内容を次のように変更しました。$(document).on('click','.navbar-collapse.in',function(e) { if( $(e.target).is('a:not(".dropdown-toggle")') ) { $(this).collapse('hide'); } });