Почему при клике на элемент не появляется список?

Рейтинг: 0Ответов: 1Опубликовано: 18.02.2023

При клике на любой элемент списка должен появляться вложенный список но этого не происходит, не могу понять в чем причина Полный код

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Принят

Все просто до банальности, Вы просто забыли дописать еще одну строчку после цикла, а именно ту которая будет открывать ваше меню. Возможно вы хотели обойтись одним циклом, тогда ошибка в Вашей логике — в этот цикл не попадает элемент который Вы хотите открыть (он должен быть .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'); // <---- это откроет
      }
  })