Comment faire passer un argument en javascript ?

Comment faire passer un argument en javascript ? - HTML/CSS - Programmation

Marsh Posté le 17-06-2002 à 21:52:50    

Voila, je n'ai aucune notion de JS, mais j'aimerais bien apprendre un peu, c sur ;)
 
La je viens de récupérer un script, car j'aimerais faire un menu un peu plus "joyeux" pour mon site.
Je vous met le code, et je vous explik mon pb après :)
 

Code :
  1. <!--
  2. if (navigator.appName == "Netscape" )
  3. {
  4.   layerRef="document.layers";
  5.   styleRef="";
  6. }
  7. else
  8. {
  9.   layerRef="document.all";
  10.   styleRef=".style";
  11. }
  12. var maxout = 101    // position sortie maximale.
  13. var minin = 70     // position rentrée minimale .
  14. var step = 1;       // pas
  15. var xpos = minin;   // compteur de position
  16. function move()
  17. {
  18.   if (xpos < maxout)    // position inférieure à position sortie  => sortir
  19.   {
  20.     move_out();
  21.     return;              // pour garder en position sortie
  22.   }
  23.   if (xpos > minin)     // position supérieure à position rentrée  => rentrer
  24.     move_in();
  25. }
  26. function move_out()
  27. {
  28.   if (xpos < maxout)  // position sortie non atteinte ? => continuer à sortir
  29.   {
  30.     xpos = xpos + step;
  31.     eval(layerRef + '["down"]' + styleRef + '.top=' + xpos);   // déplacement
  32.     setTimeout("move_out()", 10);   // attendre
  33.   }
  34. }
  35. function move_in()
  36. {
  37.   if (xpos > minin)  // position rentrée non atteinte ? => continuer à rentrer
  38.   {
  39.     xpos = xpos - step;
  40.     eval(layerRef + '["down"]' + styleRef + '.top=' + xpos);   // déplacement
  41.     setTimeout("move_in()", 10);    // attendre
  42.   }
  43. }
  44. //-->


 
En fait lorsque j'appelle la fonction move()( javascript:move() ), le menu s'actionne, en faisant sortir le contenu de ma <div> nommé id=down.
Seul pb, jai plusieur bouton a mon menu, donc je voudrais ke suivant le bouton ou je clik, ce soit une image diférente qui apparaisse, avec mon sous-menu.
 
Je voudrais donc nommé toute mes <div> avec chacun un nom différent, et lorsque j'appele ma fonction move(), je lui envoi le nom de la <div>.
Ex: javascript:move(nomDeMaDiv)
 
il faudrait alors ka la ligne  

Code :
  1. eval(layerRef + '["down"]' + styleRef + '.top=' + xpos);

le mot "down", soit remplacer par le nom passer en argument, et je sais pas comment modifier le script pour réaliser ceci :/
 
Alors si qq1 peut m'aider, ce serait super sympa :jap:
Merci
 
:hello:
 
PS: j'espère que vous avez compris koi jai raconter, paceke meme moi g du mal a me comprendre :D

Reply

Marsh Posté le 17-06-2002 à 21:52:50   

Reply

Marsh Posté le 18-06-2002 à 00:37:57    

T'es tout proche.
 
Quand tu appelles maFonction(argumentPasse), tu peux réutiliser à n'importe quel moment dans ta fonction argumentPasse sous la forme d'une variable, exemple : alert(argumentPasse); te donnera la valeur de l'argument que tu as passé à ta fonction.

Reply

Marsh Posté le 18-06-2002 à 09:12:51    

C ce ke je pensais, j'ai essayer, mais j'obtiens des erreures de script. j'ai fait ca:
 
 
Code :
 

Code :
  1. <!-- 
  2.   if (navigator.appName == "Netscape" )
  3.   {
  4.       layerRef="document.layers";
  5.       styleRef="";
  6.   }
  7.   else
  8.   {
  9.       layerRef="document.all";
  10.       styleRef=".style";
  11.   }
  12.  
  13.   var maxout = 101   // position sortie maximale.  
  14.   var minin = 70    // position rentrée minimale .  
  15.   var step = 1;      // pas  
  16.   var xpos = minin;  // compteur de position  
  17.  
  18.   function move(arg)
  19.   {
  20.       if (xpos < maxout)   // position inférieure à position sortie  => sortir  
  21.       {
  22.           move_out(arg);
  23.           return;             // pour garder en position sortie  
  24.       }
  25.       if (xpos > minin)    // position supérieure à position rentrée  => rentrer  
  26.           move_in(arg);
  27.   }
  28.  
  29.   function move_out(arg)
  30.   {
  31.       if (xpos < maxout) // position sortie non atteinte ? => continuer à sortir  
  32.       {
  33.           xpos = xpos + step;
  34.           eval(layerRef + '["arg"]' + styleRef + '.top=' + xpos);  // déplacement  
  35.           setTimeout("move_out(arg)", 10);  // attendre  
  36.       }
  37.   }
  38.   function move_in(arg)
  39.   {
  40.       if (xpos > minin) // position rentrée non atteinte ? => continuer à rentrer  
  41.       {
  42.           xpos = xpos - step;
  43.           eval(layerRef + '["arg"]' + styleRef + '.top=' + xpos);  // déplacement  
  44.           setTimeout("move_in(arg)", 10);   // attendre  
  45.       }
  46.   }
  47.   //-->


 
ensuite sur mon lien je fait javascript:move(down) mais ca ne marche pas :(

Reply

Marsh Posté le 18-06-2002 à 11:24:33    

Attention "ceci" et ceci ne sont pas la même chose.
 
Entre guillemets, c'est une chaine de caractères, sans les guillemets, c'est une variable.
 
Donc je remplace dans ton code la chaine de caractère arg par la variable et hop, normalement, ça devrait aller...
 

Code :
  1. function move_out(arg) 
  2.      if (xpos < maxout) // position sortie non atteinte ? => continuer à sortir   
  3.      { 
  4.          xpos = xpos + step; 
  5.          eval(layerRef + '[' + arg + ']' + styleRef + '.top=' + xpos);  // déplacement   
  6.          setTimeout("move_out(arg)", 10);  // attendre   
  7.      } 
  8. }

Reply

Sujets relatifs:

Leave a Replay

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