Sto provando a creare un menu a discesa con Vanilla JavaScript e non riesco a capire il modo migliore per aggiungere una classe attiva al menu a discesa cliccato, e quindi allo stesso tempo rimuovere tutte le altre classi attive dagli elementi di pari livello.Vanilla JS rimuove la classe da tutti gli altri elementi oltre alla classe 'attiva'
finora questo è quello che ho per quanto JS:
var _dropdowns = [].slice.call(document.getElementsByClassName('main-menu-li_dropdown'));
_dropdowns.forEach(function(dropdowns) {
dropdowns.addEventListener('click', function(event){
event.preventDefault();
console.log(this !== event.target);
this.classList.toggle('active');
});
});
Ed ecco la mia marcatura:
<nav id="main-nav">
<ul>
<li class="main-menu-li_dropdown">
<a href="">link</a>
<ul class="sub-nav">
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
</ul>
</li>
<li class="main-menu-li_dropdown">
<a href="">link</a>
<ul class="sub-nav">
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
</ul>
</li>
<li class="main-menu-li_dropdown">
<a href="">link</a>
<ul class="sub-nav">
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
</ul>
</li>
<li class="main-menu-li_dropdown">
<a href="">link</a>
<ul class="sub-nav">
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
</ul>
</li>
<li class="main-menu-li_dropdown">
<a href="">link</a>
<ul class="sub-nav">
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
<li><a href="">link</a></li>
</ul>
</li>
</ul>
</nav>
Ti dispiacerebbe inserire il codice in jsfiddle? La mia compagnia blocca jsbin per qualche motivo. – wgallop
@wgallop https://jsfiddle.net/122twuoe/ –
Grazie! Qualche suggerimento per rimuovere anche la classe quando si fa clic su un punto qualsiasi fuori dal menu? – wgallop