Компонент 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
у меня была та же проблема, и решение состояло в том, чтобы убедиться, что 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 также должна закрыть меню.