Я использую меню навигации из Bootstrap5. Мой выпадающий список не открывается или не закрывается
я добавляю функцию jquery, и раскрывающийся список работает только для открытия, но не для закрытия сверху
$(".dropdown-toggle").click(function (event) {
$('.dropdown-menu').addClass('show');
});
$(".dropdown-toggle").click(function (event) {
$('.dropdown-menu.show').removeClass('show');
});
Просто измените addClass на toggleClass и удалите обнаружение второго клика:
$(".dropdown-toggle").click(function (event) {
$('.dropdown-menu').toggleClass('show');
});
Нет причин использовать jQuery в Bootstrap 5. Просто убедитесь, что вы используете соответствующие атрибуты data-bs-
в раскрывающемся списке.
<li class = "nav-item dropdown">
<a class = "nav-link dropdown-toggle" href = "#" id = "navbarDropdown" role = "button" data-bs-toggle = "dropdown" aria-expanded = "false">
Dropdown
</a>
<ul class = "dropdown-menu" aria-labelledby = "navbarDropdown">
<li><a class = "dropdown-item" href = "#">Action</a></li>
<li><a class = "dropdown-item" href = "#">Another action</a></li>
<li><hr class = "dropdown-divider"></li>
<li><a class = "dropdown-item" href = "#">Something else here</a></li>
</ul>
</li>
Оба ваших обработчика кликов срабатывают для каждого клика. Сделайте только один обработчик событий. Проверьте
hasClass('show')
на элементе, чтобы определить, что он должен делать. Или просто$('.dropdown-menu').toggleClass('show')