#javascript #html #events #onclick
#javascript #HTML #Мероприятия #onclick
Вопрос:
хорошо, итак, я пытаюсь использовать addEventListener
метод для выполнения щелчка event
, который переключит класс для анимации моей строки меню и появления бокового меню. Это мой код
//reference to the ".menu" class
const menu = document.querySelector('.menu');
console.log(menu)
const menuButton = document.querySelector('.menu-button')
// Using your menuButton reference, add a click handler that calls toggleMenu
console.log(menuButton);
menuButton.addEventListener("click", function() {
menuButton.classList.toggle('.menu--open');
console.log('toggled');
});
<div class="header">
<img class="menu-button" src="./assets/menu.png" />
<h1>Lambda School Newsfeed</h1>
</div>
<div class="menu">
<ul>
<li>Students</li>
<li>Faculty</li>
<li>What's New</li>
<li>Tech Trends</li>
<li>Music</li>
<li>Log Out</li>
</ul>
</div>
Я понимаю, что в ответ я получаю nodelist и не позволяет мне использовать метод event, но, похоже, я не могу решить проблему
Комментарии:
1. У вас здесь нет никаких списков узлов, только отдельные элементы ..? Если вам нужен
event
объект, объявите его как параметр функции прослушивателя? Смотрите фрагмент, ваш код, похоже, работает
Ответ №1:
Удалить .
из .menu--open
этого фрагмента menuButton.classList.toggle('.menu--open');
//reference to the ".menu" class
const menu = document.querySelector('.menu');
console.log(menu)
const menuButton = document.querySelector('.menu-button')
// Using your menuButton reference, add a click handler that calls toggleMenu
console.log(menuButton);
menuButton.addEventListener("click", function() {
menuButton.classList.toggle('menu--open');
});
.menu--open {
border: 1px solid red;
}
.header {
cursor: pointer;
}
<div class="header">
<img class="menu-button" src="./assets/menu.png" />
<h1>Lambda School Newsfeed</h1>
</div>
<div class="menu">
<ul>
<li>Students</li>
<li>Faculty</li>
<li>What's New</li>
<li>Tech Trends</li>
<li>Music</li>
<li>Log Out</li>
</ul>
</div>
Ответ №2:
В вашем коде есть две проблемы:
- Вам нужно использовать
menu--open
вместо.menu--open
внутри функции переключения списка классов - Вам нужно использовать
menu.classList.toggle
вместоmenuButton.classList.toggle
//reference to the ".menu" class
const menu = document.querySelector('.menu');
console.log(menu)
const menuButton = document.querySelector('.menu-button')
// Using your menuButton reference, add a click handler that calls toggleMenu
console.log(menuButton);
menuButton.addEventListener("click", function() {
menu.classList.toggle('menu-open');
});
.menu.menu-open {
display: none;
}
<div class="header">
<img class="menu-button" src="./assets/menu.png" />
<h1>Lambda School Newsfeed</h1>
</div>
<div class="menu">
<ul>
<li>Students</li>
<li>Faculty</li>
<li>What's New</li>
<li>Tech Trends</li>
<li>Music</li>
<li>Log Out</li>
</ul>
</div>