Компонент компиляции 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>

Да, я получил: установлены соответствующие библиотеки: Bootstrap v3.0.3. Ошибок javascript нет, и код HTML действителен.

Шаги для воспроизведения: Загрузите zip-пакет bootstrap 3.0.3, создайте файл index.html, вставьте css и js файлы для загрузки. Введите вышеуказанный код и не закрывайте его при нажатии или прикосновении.

Итак, это код, предназначенный для скрытия меню или нет?

Ответ 1

Это должно сделать

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

Это справочный

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

Ответ 2

У меня была та же проблема, и решение заключалось в том, чтобы убедиться, что bootstrap.js не ссылается более одного раза. Я загрузил его два раза на свою страницу и эту описанную проблему.

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

Не загружайте его более одного раза!

Ответ 3

Приведенное выше показало странное поведение для меня, где иногда на навигационной панели появлялась полоса прокрутки. Это может быть от некоторых фантазийных css, но ниже это исправлено для меня.

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

Ответ 4

Существует другое решение здесь, которое также работает при подменю.

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

Ответ 5

У меня была та же проблема. Не используйте script "взломать". Просто попробуйте использовать jquery 2.1.4 или старше.

Ответ 6

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

^ У меня был слишком большой файл .js. Измените свои строки так, чтобы они выглядели выше, и кнопка реагирования также должна закрыть меню.