Выбирает первый элемент из списка
Есть ul
При клике на li добавляю класс, но всегда добавляет первому в списке
Отслеживаю клик
document.querySelector('.' + this.html_class.menu_toggle).addEventListener('click', (function () {
this.toggleMenu();
}).bind(this));
Добавляю класс
let element = e.target.closest('.' + this.html_class.menu_item_show_parent);
element.classList.toggle(this.html_class.active);
Ответы (1 шт):
Автор решения: De.Minov
→ Ссылка
А вы читали о .querySelector()? Он возвращает только первый элемент по селектору, в то время как .querySelectorAll() вернёт коллекцию элементов по заданному селектору.
В этом случае потребуется пройтись циклом по всем найденным элементам и каждому повесить .addEventListener().
document.querySelectorAll('.'+this.html_class.menu_toggle).forEach(function(element) {
element.addEventListener('click', function(event) {
event.target.toggleMenu();
});
});
Либо использовать делегирование событий.