Bonjour,
@noboxstyle
1- Ta solution 1 (sur :hover) est à éviter (surtout avec un menu vertical !)
En effet, on utilise de plus en plus des écrans tactiles.
2- Ta solution 2 (on "click") est à privilégier.
Cela dit :
<li button onclick="myFunction()" class="dropbtn">
Ca n'existe pas !
On peut améliorer (et corriger) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <ul id="menu-accordeon">
<li class="dropbtn">Voyages
<ul>
<li><a href="#">Tourisme</a></li>
<li><a href="#">Informatique</a></li>
</ul>
</li>
<li class="dropbtn">Autre chose
<ul>
<li><a href="#">Truc 1</a></li>
<li><a href="#">Truc 2</a></li>
</ul>
</li>
</ul> |
1 2 3 4 5 6 7
| var dropbtns = document.querySelectorAll('.dropbtn');
dropbtns.forEach( function(dropbtn){
dropbtn.addEventListener('click', function(){
var ul = dropbtn.getElementsByTagName('ul')[0]; // le 1er <ul> enfant
ul.style.display = (ul.style.display === "none")? "block" : "none";
});
}) |
Et on peu aller encore plus loin :
Partager