Компонент Bootstrap collapse не закрывает меню при щелчке

когда я нажимаю кнопку, меню не скрывается, я нашел этот код на: 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, сделайте индекс.html-файл, вставьте CSS и JS материал для начальной загрузки. Введите вышеуказанный код, и это не закрытие при щелчке или прикосновении.

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

6 ответов


Это

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

это ссылка gist

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


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

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

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


выше показано странное поведение для меня, где иногда на навигаторе появляется полоса прокрутки. Это может быть из какого-то причудливого css, но ниже исправлено для меня.

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

есть другое решение здесь, который также работает при наличии суб-меню.

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

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


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

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