Salut,
J'ai un petit soucis pour créer des actions sur des évènements. Je m'explique :
Les id de mes boutons sont stockés dans un tableau et j'aimerais faire un onclick dessus chacun d'entre eux.
Voici le code :
Code :
- // Buttons of menu
- var menu={'sensors':2, 'recordparameters':2, 'record':2, 'recordedfiles':1, 'recordedfiles':1};
- // Checking the buttons
- for (id in menu)
- {
- // alert(id);
- // Add the toggle function on click of the button
- document.getElementById(id).onclick = function()
- {
- toggledisplay (id);
- };
- }
- function toggledisplay (id)
- {
- if (document.getElementById(id+'content') != null)
- {
- if(document.getElementById(id+'content').style.visibility=='hidden')
- {
- document.getElementById(id+'content').style.visibility='visible';
- document.getElementById(id+'content').style.display='block';
- }
- else
- {
- document.getElementById(id+'content').style.visibility='hidden';
- document.getElementById(id+'content').style.display='none';
- }
- }
- }
|
Ma fonction toggledisplay affiche ou cache le contenu de l'id au clic.
Le problème est que quand j'exécute le code, c'est le dernier id du tableau qui change d'état, quelque soit le bouton sur lequel je clique.
J'avoue ne pas trop comprendre pourquoi. Un peu comme si la fonction n'était créée qu'au moment du clic et donc avec le dernier id...
Existe-t-il un moyen de contourner le problème ?
Merci d'avance pour votre aide.
Message édité par k'stor le 23-04-2014 à 22:54:01