У меня от бутстрапа 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>
Он обычно сворачивается на небольших устройствах. Щелчок по кнопке меню раскрывает меню, но если я нажимаю (или касаюсь, если на то пошло) ссылку меню, меню остается открытым. Что мне нужно сделать, чтобы закрыть его снова?
html
css
twitter-bootstrap
navigation
паранойя
источник
источник
Ответы:
По умолчанию в Bootstrap меню остается открытым, когда вы щелкаете по пункту меню. Вы можете вручную изменить это поведение, вызвав
.collapse('hide');
элемент jQuery, который вы хотите свернуть.источник
Чтобы поделиться этим из решений на GitHub, это был популярный ответ:
https://github.com/twbs/bootstrap/issues/9013#issuecomment-39698247
Это связано с документом, поэтому вам не нужно делать это в ready () (вы можете динамически добавлять ссылки в свое меню, и оно все равно будет работать), и он вызывается только в том случае, если меню уже развернуто. Некоторые люди сообщали о странном мигании, когда меню открывается, а затем немедленно закрывается с помощью другого кода, который не проверял, что меню имеет класс «in».
[ОБНОВЛЕНИЕ 2014-11-04] очевидно, что при использовании подменю вышеуказанное может вызвать проблемы, поэтому приведенное выше было изменено на:
источник
collapse
это метод, определенный начальной загрузкой и прикрепленный к объекту jQuery ... предположительно, они повторно используют это для нескольких целей (аккордеон, навигационная панель и т.д.): getbootstrap.com/javascript / # collapse-usageИзмените это:
к этому:
Это простое изменение сработало для меня.
Ссылка: https://github.com/twbs/bootstrap/issues/9013
источник
.in
в конецdata-target
значения:data-target=".navbar-collapse.in"
. Из комментария в этом ответе: stackoverflow.com/a/21797534/89818У меня была та же проблема , но в результате в том числе дважды
bootstrap.js
иjquery.js
файлы.Одним щелчком мыши событие было обработано дважды обоими экземплярами jquery. Один закрыл, а другой открыл тумблер.
источник
Это поможет в обработке выпадающего списка на панели навигации
источник
У меня были / были аналогичные проблемы с Bootstrap 4, alpha-6, и ответ Йоакима Йоханссона выше начал меня в правильном направлении. JavaScript не требуется. Помещение data-target = ". Navbar-collapse" и data-toggle = "collapse" в тег div внутри навигационной панели, но окружающее ссылки / кнопки, сработало для меня.
источник
Я знаю, что этот вопрос касается Bootstrap 3, но если вы ищете решение для Bootstrap 4 , просто сделайте следующее:
источник
$(".navbar-nav li a:not('.dropdown-toggle')") .on('click', function () { $('.navbar-collapse').collapse('hide'); }
У меня была такая же проблема, я использовал
jQuery-1.7.1
иbootstrap 3.2.0
. Я изменил свою версию jQuery на последнюю (jquery-1.11.2
) версию, и все работает хорошо.источник
я сделал
источник
Хотя ранее опубликованное решение для изменения самого пункта меню, как показано ниже, работает, когда меню находится на небольшом устройстве, оно имеет побочный эффект, когда меню находится на полной ширине и расширяется, это может привести к тому, что горизонтальная полоса прокрутки скользит по вашему пункты меню . Решения javascript не имеют этого побочного эффекта.
(извините за такой ответ, хотел добавить комментарий к этому ответу, но, похоже, у меня недостаточно прав, чтобы делать замечания)
источник
источник
Если вы хотите вручную переопределить это поведение, вызвав .collapse ('hide') в директиве angular, вот код:
файл javascript:
Html:
источник
Убедитесь, что вы используете последнюю версию bootstrap js. Я столкнулся с той же проблемой, и просто обновление файла bootstrap.js из bootstrap-3.3.6 сделало чудо.
источник
Если вы хотите, чтобы ваша навигация переключалась только при использовании на мобильном экране, просто добавление
data-toggle="collapse"
иdata-target="#navbar"
к вашим элементам a будет работать на мобильном экране, но даст вам странное мерцание при нажатии на экране рабочего стола. Решения jQuery не работают, если вы находитесь в среде Aurelia или Angular.Лучшим решением для меня было создание настраиваемого атрибута, который прослушивает соответствующий медиа-запрос и
data-toggle="collapse"
при желании добавляет атрибут:<a href="#" ... collapse-toggle-if-less768 data-target="#navbar"> ...
Настраиваемый атрибут с Aurelia выглядит так:
источник
Я обнаружил, что после долгой борьбы, проб и ошибок лучшее решение для меня на jsfiddle. Ссылка на вдохновение на jsfiddle.net . Я использую загрузочную панель navbar-fixed-top с переключением коллапса и гамбургера. Вот моя версия на jsfiddle: jsfiddle Scrollspy navbar . Я получал только базовые функции, используя инструкции на getbootsrap.com. Для меня проблема была в основном в расплывчатых направлениях и js, рекомендованных сайтом getbootstrap. Самое приятное то, что добавление этого дополнительного бита js (который включает в себя некоторые из того, что упоминается в приведенных выше потоках) решило для меня несколько проблем Scrollspy, включая:
ПРИМЕЧАНИЕ. В коде js, показанном ниже (из второй ссылки jsfiddle в моем сообщении):
topMenu = $ ("# myScrollspy"),
... значение "myScrollspy" должно соответствовать id = "" в вашем HTML вот так ...
Конечно, вы можете изменить это значение на любое, какое захотите.
источник
Все, что вам нужно, это data-target = ". Navbar-collapse" в кнопке, больше ничего.
источник
<a/>
но не работает<NavLink/>
, рушится, но<NavLink/>
больше не работает, есть идеи, почему?Это код, который у меня сработал:
источник
У меня была та же проблема, убедитесь, что bootstrap.js включен в вашу html-страницу. В моем случае меню открылось, но не закрылось. Как только я включил файл bootstrap js, все заработало.
источник
Просто попробуйте сделать функцию в javascript для выпадающего класса свертывания.
Пример:
JS :
Подключите эту функцию к
onClick
простым работам для меня.источник
У меня была аналогичная проблема, но моя не оставалась открытой, она открывалась / закрывалась быстро, я обнаружил, что у меня была загрузка jquery-1.11.1.min.js до bootstrap.min.js. Поэтому я изменил порядок этих двух файлов и исправил свое меню. Теперь работает безупречно. Надеюсь, поможет
источник
Проблема может заключаться в том, что вы используете устаревшие версии bootstrap или jquery, ИЛИ вы вызываете более одной версии в своей разметке.
Просто сохраните последние версии, вам понадобится только одна ссылка. Решает проблему.
источник
вы можете просто убедиться, что загружаете jQuery и Bootstrap.min.js ATF. Ваша навигация - это первое, что отображается на странице, поэтому, если у вас есть скрипты в нижней части HTML-кода, вы теряете любую функциональность JavaScript.
источник
У меня была такая же проблема только на мобильном телефоне, но для приложения Angular, и вот что я сделал:
app.component.html
app.component.ts
Надеюсь, поможет :)
источник
Мое меню не является стандартным для навигационной панели, но мне удалось автоматически свернуть мое, используя функцию «onclick» и «.click ()».
источник