У меня все еще есть веб-сайт просмотра с Bootstrap 3 навигацией с вкладками и раскрывающимися списками. Работает отлично. Но на мобильных устройствах меню гамбургера сворачивается только на один шаг и не полностью возвращается к значку гамбургера. Я искал где угодно, и лучшее решение, которое я нашел для себя, - это использовать следующий оператор (доступ к плагину Collapse из Bootstrap) после того, как я обработал щелчок по пункту меню.
$('#bs-navbar-collapse').collapse('hide');
Меню имеет следующую структуру.
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type = "button"
class = "navbar-toggle collapsed"
data-toggle = "collapse"
data-target = "#bs-navbar-collapse" >
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
Вкладка с раскрывающимися списками:
<li class="dropdown">
<a href = "#no-collapse" class="dropdown-toggle" data-toggle="dropdown"
title = 'Consumption' >
<span class="glyphicon glyphicon-book"></span>
Consumption <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li class="navbar-item">
<a href = "#tabConsumptionElec" data-toggle="tab" aria-expanded="true"
title = 'Electricity'>
<img id="electric" src="images/if_electric_85640.png">
Consumption Electricity
</a>
</li>
<li class="navbar-item">
<a href = "#tabConsumptionGas" data-toggle="tab" aria-expanded="true"
title = '<?php echo _h("nav-consumption-gas-title"); ?>'>
<img id="gas" src="images/if_gas_stove_2023102.png">
Consumption Gas
</a>
</li>
....
Во-первых, решение работает нормально. Обычная навигация на рабочем столе не пострадала, изменился только мобильный. Единственное, что раздражает, - это делать специальный обработчик для каждой вкладки. Для тех, кто не знает, как это сделать, посмотрите следующий фрагмент кода:
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href");
switch(target) {
case '#tabHome' : // Handler for the Home-tabpage.
case '...' : // Handler for another page.
...
Мой вопрос: есть ли у кого-нибудь более простое решение?