Plusieurs button qui ouvre le premier (HTML + CSS)

martel8282 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   -
Voici le code:

<style>

.dropbtn {
background-color: #240073;
color: white;
padding: 16px;
font-size: 16px;
border: none;
cursor: pointer;
}

.dropbtn:hover, .dropbtn:focus {
background-color: #000000;
}

.dropdown {
position: relative;
display: inline-block;
}

.dropdown-content {
display: none;
position: absolute;
background-color: #240073;
min-width: 160px;
overflow: auto;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

.dropdown-content a {
color: WHITE;
padding: 12px 16px;
text-decoration: none;
display: block;
}


.dropdown a:hover {background-color: #240073}

.show {display:block;}
</style>
<div class="dropdown">

<button onclick="myFunction()" class="dropbtn">
HOME
</button>

<div class="dropdown-content" id="myDropdown">
<a value="Lien NHL" href="#pre" rel="nofollow" target="_blank">PROFIL</a> <a value="Lien NHL" href="#sa" rel="nofollow" target="_blank">MESSAGES</a> <a value="Lien NHL" href="#se" rel="nofollow" target="_blank">MEMBRES</a> <a value="Lien NHL" href="#se" rel="nofollow" target="_blank">GROUPES</a>
</div>
.
</div>
<script>
/* When the user clicks on the button,
toggle between hiding and showing the dropdown content */
function myFunction() {
document.getElementById("myDropdown").classList.toggle("show");
}

// Close the dropdown if the user clicks outside of it
window.onclick = function(event) {
if (!event.target.matches('.dropbtn')) {

var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains('show')) {
openDropdown.classList.remove('show');
}
}
}
}
</script>


Question : Jutilise 4 fois de suite ce code (sauf avec des listes differente). Le probleme est que si je click le Button2 pour ouvrir cette list, le click ouvre la liste du button1... et ainsi de suite. Comment faire pour que chaque button ouvre leur liste respective?

Merci d'avance
A voir également:

2 réponses

Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
je dirais que les buttons ne sont pas differenciés.
<button onclick="myFunction()" class="dropbtn">

colles y un id ou un name
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Il faudrait que chaque bouton sache à quel DDL il correspond. Cela peut se faire dans son appel javascript, en passant en paramètre l'id de la DDL en question, et en différenciant les ID de tes DDL (par exemple en suffixant _1, _2, ...)

Comme ça :
<button onclick="myFunction('myDropdown_1')" class="dropbtn">HOME</button>
<div class="dropdown-content" id="myDropdown_1">
[...]
<button onclick="myFunction('myDropdown_2')" class="dropbtn">HOME</button>
<div class="dropdown-content" id="myDropdown_2">


Et, du coup, il faut modifier la définition de my_function :
function myFunction(ddl_id) {
    document.getElementById(ddl_id).classList.toggle("show");
}


Xavier
0