как закрыть вложенный в меню чистый Javascript - PullRequest
0 голосов
/ 14 октября 2019

У меня есть меню на боковой панели. когда я нажимаю закрытое меню, то открывается вложенное меню. если я щелкну закрытое меню и открою другое меню, то откроется меню, в котором открыто только одно меню, остальные будут закрыты. проблема, когда я нажимаю снова, меню не может быть закрыто

демо

//const link =  document.querySelectorAll('.list-menu a')



var nested = document.getElementsByClassName('menu-nested');
  var list = document.querySelectorAll('.list-menu a');
  for (i = 0; i < list.length; i++) {
      list[i].addEventListener('click', toggleItem, false);
  }
  function toggleItem() {
      var itemClass = this.parentNode.className;
      for (i = 0; i < nested.length; i++) {
          nested[i].className = 'menu-nested none';
      }
      if (itemClass == 'list-menu') {
          this.nextElementSibling.classList.toggle('block');
      }
  }


/*[].forEach.call(
    document.querySelectorAll('.list-menu a'),
    function (el) {
      el.addEventListener('click', (e) => {
        //console.log(e.target.parentElement)
        if(e.target.nextElementSibling == null){
          return;
        }
        e.target.parentElement.querySelector('.menu-nested').classList.toggle('block')
        if(e.target.parentElement.nextElementSibling == null){
          return;
        }else{
          e.target.parentElement.nextElementSibling.querySelector('.menu-nested').classList.toggle('none')
          //e.target.parentElement.nextElementSibling.querySelector('.menu-nested').classList.toggle('block')
        }
        console.log(this)
      })
    }
);*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...