Почему при клике на элемент не появляется список?
При клике на любой элемент списка должен появляться вложенный список но этого не происходит, не могу понять в чем причина Полный код
const menu = document.getElementById('menu');
menu.addEventListener('click', (event) => {
if (event.target.tagName === 'SPAN') {
const currentParent = event.target.parentNode;
console.log(currentParent);
document.querySelectorAll('.active').forEach((activeParent) => {
if (activeParent !== currentParent) {
activeParent.classList.toggle('active', activeParent.contains(currentParent));
}
})
}
})
Ответы (1 шт):
Автор решения: Daniil Loban
→ Ссылка
Все просто до банальности, Вы просто забыли дописать еще одну строчку после цикла, а именно ту которая будет открывать ваше меню. Возможно вы хотели обойтись одним циклом, тогда ошибка в Вашей логике — в этот цикл не попадает элемент который Вы хотите открыть (он должен быть .active) уже открытым.
const menu = document.getElementById('menu');
menu.addEventListener('click', (event) => {
if (event.target.tagName === 'SPAN') {
const currentParent = event.target.parentNode;
console.log(currentParent);
document.querySelectorAll('.active').forEach((activeParent) => {
if (activeParent !== currentParent) {
activeParent.classList.toggle('active', activeParent.contains(currentParent));
}
})
currentParent.classList.toggle('active'); // <---- это откроет
}
})