[RESOLU] Creer des actions sur évènement en boucle

Creer des actions sur évènement en boucle [RESOLU] - HTML/CSS - Programmation

Marsh Posté le 23-04-2014 à 22:31:07    

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 :
  1. // Buttons of menu
  2. var menu={'sensors':2, 'recordparameters':2, 'record':2, 'recordedfiles':1, 'recordedfiles':1};
  3. // Checking the buttons
  4. for (id in menu)
  5. {
  6. // alert(id);
  7. // Add the toggle function on click of the button
  8. document.getElementById(id).onclick = function()
  9. {
  10.  toggledisplay (id);
  11. };
  12. }
  13. function toggledisplay (id)
  14. {
  15. if (document.getElementById(id+'content') != null)
  16. {
  17.  if(document.getElementById(id+'content').style.visibility=='hidden')
  18.  {
  19.   document.getElementById(id+'content').style.visibility='visible';
  20.   document.getElementById(id+'content').style.display='block';
  21.  }
  22.  else
  23.  {
  24.   document.getElementById(id+'content').style.visibility='hidden';
  25.   document.getElementById(id+'content').style.display='none';
  26.  }
  27. }
  28. }


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
Reply

Marsh Posté le 23-04-2014 à 22:31:07   

Reply

Marsh Posté le 23-04-2014 à 22:52:49    

Trouvé !
 
toggledisplay (this.id);
 
Désolé, si ça peut aider quelqu'un...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed