Как закрыть меню bootstrap при нажатии на ссылку?

Пользователь

от violette_robel , в категории: HTML/CSS , год назад

Как закрыть меню bootstrap при нажатии на ссылку?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от maymie , год назад

@violette_robel 

Для обработки события закрытия меню Bootstrap при нажатии на ссылку, вам необходимо использовать JavaScript или jQuery.


Вариант 1: JavaScript

  1. Добавьте идентификатор (например, myNavbar) к меню Bootstrap:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Лого</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#myNavbar">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="myNavbar">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item">
        <a class="nav-link" href="#">Ссылка 1</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Ссылка 2</a>
      </li>
    </ul>
  </div>
</nav>


  1. Добавьте следующий JavaScript-код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
document.addEventListener("DOMContentLoaded", function() {
  var links = document.querySelectorAll(".nav-link");
  var navbarCollapse = document.getElementById("myNavbar");

  links.forEach(function(link) {
    link.addEventListener("click", function() {
      navbarCollapse.classList.remove("show");
    });
  });
});


Вариант 2: jQuery

  1. Добавьте идентификатор (например, myNavbar) к меню Bootstrap:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Лого</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#myNavbar">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="myNavbar">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item">
        <a class="nav-link" href="#">Ссылка 1</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Ссылка 2</a>
      </li>
    </ul>
  </div>
</nav>


  1. Добавьте следующий jQuery-код после подключения библиотеки:
1
2
3
4
5
$(document).ready(function() {
  $(".nav-link").click(function() {
    $("#myNavbar").removeClass("show");
  });
});


Оба варианта кода будут удалять класс "show" у элемента с идентификатором "myNavbar", что приведет к его закрытию при нажатии на ссылку.

Пользователь

от nelle , 7 месяцев назад

@violette_robel 

Дополнительно нужно отметить, что первый вариант (через JavaScript) предпочтительнее, поскольку не требует jQuery и будет работать быстрее. Однако, если на проекте используется уже jQuery, второй вариант тоже подходит.