#html #jquery #css
#HTML #jquery #css
Вопрос:
Я пытаюсь создать меню для гамбургеров. Когда я нажимаю на три строки, я не получаю «x». Я думаю, что у меня есть классы, названные правильно. Если вам нужно больше кода, я могу предоставить и это.
$('.js--nav-icon').click(function() {
var nav = $('.js--main-nav');
var icon = $('.js--nav-icon');
nav.slideToggle(200);
if (icon.hasClass('.menu-outline')) {
icon.addClass('.close-outline');
icon.removeClass('.menu-outline');
} else {
icon.addClass('.menu-outline');
icon.removeClass('.close-outline');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<img src="Resources/img/logo-white.png" alt="Omnifood logo" class="logo">
<img src="Resources/img/logo.png" alt="Omnifood logo" class="logo-black">
<ul class="main-nav js--main-nav">
<li><a href="#features">Food delivery</a></li>
<li><a href="#works">How it works</a></li>
<li><a href="#cities">Our cities</a></li>
<li><a href="#plans">Sign up</a></li>
</ul>
<ion-icon class="mobile-nav-icon js--nav-icon" name="menu-outline"></ion-icon>
</div>
Ответ №1:
Вы не должны использовать точку (.) в функциях jQuery hasClass, addClass, removeClass . удалите эти точки:
if (icon.hasClass('menu-outline')) {
icon.addClass('close-outline');
icon.removeClass('menu-outline');
}
else {
icon.addClass('menu-outline');
icon.removeClass('close-outline');
}
Комментарии:
1. он по-прежнему делает то же самое, я удалил точку (.) из функций класса, но при нажатии на нее меню гамбургеров не переходит в x.
Ответ №2:
Пожалуйста, удалите (.), как показано ниже:
icon.addClass('close-outline');
Комментарии:
1. Также используйте toggleClass() вместо того, чтобы проверять наличие hasClass()