[JS] Déclaration de fonction dans une fonction

Déclaration de fonction dans une fonction [JS] - HTML/CSS - Programmation

Marsh Posté le 26-11-2004 à 11:35:53    

bonjour
 
pour mon menu déroulant, je voudrais déclarer une fonction à l'intérieur d'une autre fonction. Pour ça, je voudrais que la "sous-fonction" aie un nom "incrémenté". Dans le genre :

Code :
  1. function fonctionQuiCrée() {
  2.     for (i=0;i<5;i++) {
  3.         function fonctionCrééei() {
  4.             faireDesTrucs();
  5.         }
  6.     }
  7. }


 
j'ai essayé function eval("fonctionCréée" + i + "()" ), j'ai essayé function "fonctionCréée" + i + "()", mais rien ne marche.
J'ai cherché un peu sur google, mais ça ne me donne rien pour le moment.
 
Est-ce que vous savez comment faire ?
 
Merci !

Reply

Marsh Posté le 26-11-2004 à 11:35:53   

Reply

Marsh Posté le 26-11-2004 à 11:45:25    

en php ou en java pas de pb, en js, j'ai un gros doute qd mm

Reply

Marsh Posté le 26-11-2004 à 11:47:55    

:sweat:
 
 
et on fait comment en php ? :D


Message édité par cosmoschtroumpf le 26-11-2004 à 11:48:09
Reply

Marsh Posté le 26-11-2004 à 11:49:41    

on pose la même question ici :
 
http://forum.hardware.fr/hardwaref [...] _sujet.htm
 
 
mais maintenant que j'y pense, il y aurait peut etre un moyen avec des "write" mais j'm'y connais po assez pour t'expliquer comment ca marche


Message édité par esrevni le 26-11-2004 à 11:51:29
Reply

Marsh Posté le 26-11-2004 à 12:15:44    

des write ? Ca serait pas plutot pour modifier le html/affichage ça, pas pour le code JS ?

Reply

Marsh Posté le 26-11-2004 à 13:58:19    

C'est possible, je n'ai jamais eu à m'en servir donc je connais que très peu ces balises ;)


Message édité par esrevni le 26-11-2004 à 13:58:32
Reply

Marsh Posté le 26-11-2004 à 13:58:23    

allez soyez cools quoi, aidez-moi :whistle:
 
en plus là je suis bloqué du coup :sweat:
 
 
merci ! [:atsuko]
 
 
Edit : ko esrevni, icrem dnauq-emêm (;
 
[:dehors]


Message édité par cosmoschtroumpf le 26-11-2004 à 13:59:58
Reply

Marsh Posté le 26-11-2004 à 14:01:11    

J'y connais queud en JS, mais pourquoi tu ferais pas connement une autre fonction qui prendrait ton i en paramètre? :??:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-11-2004 à 14:07:39    

je connais rien à php mais d'après les syntaxes que j'ai déjà vues je dirais ceci :
 

Code :
  1. <?
  2. for ($i=0;$i<$nombreDeFonctions;$i++)
  3. {
  4. echo 'function fonction' + $i + '{';
  5. echo 'début du corp de ma fonction';
  6. echo '...';
  7. echo 'fin du corp de ma fonction'
  8. echo '}';
  9. }
  10. ?>


Message édité par esrevni le 26-11-2004 à 14:09:32
Reply

Marsh Posté le 26-11-2004 à 14:16:27    

skeye a écrit :

J'y connais queud en JS, mais pourquoi tu ferais pas connement une autre fonction qui prendrait ton i en paramètre? :??:


 
parce que voilà mon code :
 

Code :
  1. for (i=1;i<=nbMenus;i++) {
  2. document.getElementsByTagName('body').onclick = cacherMenus;
  3. with(document.getElementById('menu' + i)) {
  4.  onmouseover = montrerMenu(i); // c'est ici que ça fout la merde
  5.  onmouseout = timeoutMenu;
  6. }
  7. with(document.getElementById('ssMenu' + i)) {
  8.  onmouseover = killTimeout;
  9.  onclick = cacherMenus;
  10.  onmouseout = timeoutMenu;
  11. }
  12. }


 
le problème, c'est que montrerMenu(i), ben ça marche pas, parce que si on met des parenthèses, ça exécute directement la fonction, au lieu d'attendre le onmouseover. Et sans parenthèses, ben pour mettre un paramètre, c'est coton. C'est pour ça que, plus haut, je voulais créer une fonction par menu, et utiliser à chaque fois la fonction propre au menu...
 
Edit : à moins, bien sûr, qu'il soit possible de passer un paramètre dans ce cas de figure...


Message édité par cosmoschtroumpf le 26-11-2004 à 14:19:06
Reply

Marsh Posté le 26-11-2004 à 14:16:27   

Reply

Marsh Posté le 26-11-2004 à 15:34:21    

esrevni a écrit :

je connais rien à php mais d'après les syntaxes que j'ai déjà vues je dirais ceci :
 

Code :
  1. <?
  2. for ($i=0;$i<$nombreDeFonctions;$i++)
  3. {
  4. echo 'function fonction' + $i + '{';
  5. echo 'début du corp de ma fonction';
  6. echo '...';
  7. echo 'fin du corp de ma fonction'
  8. echo '}';
  9. }
  10. ?>




 
utilises des " à la place des ', enfin c'est qu'un détail!
 
POur les priorités d'execution y'a pas un truc genre defer ou je ne sais plus trop quoi ?

Reply

Marsh Posté le 26-11-2004 à 15:41:05    

ca marcherait pas avec des ' ? ou bien ca marche mais c'est hors normes ?

Reply

Marsh Posté le 26-11-2004 à 15:41:08    

oui mais là on est en javascript [:sisicaivrai]

Reply

Marsh Posté le 26-11-2004 à 15:43:23    

tu m'as demandé avant comment on faisait en php, alors j'ai cherché. Maintenant ta solution en js, AMHA, c'est mort.
 
tu devrais peut-être chercher ailleurs (la vérité y est peut-être)

Reply

Marsh Posté le 26-11-2004 à 15:43:31    

ca marche avec ' mais c'est pas approprié! Oui on est en javascript! Oublie alors! lol

Reply

Marsh Posté le 26-11-2004 à 15:48:07    

en même temps, dans la bd, tous les schtroumpfs se mobilisent pour que le cosmoschtroumpf croit vraiment faire un voyage dans l'espace. On pourrait essayer de se mobiliser pour pas lui casser totalement son rêve
 
 :pt1cable:

Reply

Marsh Posté le 26-11-2004 à 15:49:23    

ok, mais dans ce cas, mon bôôô script ne sera pas complètement portable.... :/
 
bon, je vais essayer comme ça déjà, merci

Reply

Marsh Posté le 26-11-2004 à 15:50:01    

esrevni a écrit :

en même temps, dans la bd, tous les schtroumpfs se mobilisent pour que le cosmoschtroumpf croit vraiment faire un voyage dans l'espace. On pourrait essayer de se mobiliser pour pas lui casser totalement son rêve
 
 :pt1cable:


 
 
ouais mais t'es pas un schtroumpf alors j'te croirais jamais  :kaola:  
 
 
 
 :D

Reply

Marsh Posté le 26-11-2004 à 15:53:36    

:fou: GNAP GNAP  :fou:

Reply

Marsh Posté le 26-11-2004 à 16:21:56    

bon ça devient n'importe quoi :pt1cable:
 
merci en tout cas, avec un bout de php dans le fichier, ça marche maintenant... enfin, ça marche sous IE en tout cas :sweat: mais c'est un autre problème :jap:

Reply

Marsh Posté le 26-11-2004 à 16:28:08    

On peut ne pas aimer IE, mais si dire qu'un truc marche sous IE est un pb, c'est devient un peu exagéré quand même
 
 :D


Message édité par esrevni le 26-11-2004 à 16:28:37
Reply

Marsh Posté le 26-11-2004 à 16:30:54    

Nan moi j'aime pas IE, je fais des sites anti-IE, hinhinhin, comme je suis machiavélique ! [:666]


Message édité par cosmoschtroumpf le 26-11-2004 à 16:31:36
Reply

Marsh Posté le 26-11-2004 à 16:31:15    

que ca marche sous IE c'est pas trop le problème à mon avis! Mais que ca marche QUE sous IE alors la je dis NON! :D

Reply

Marsh Posté le 26-11-2004 à 16:37:46    

bon spa tout ca mais mon problème se déplace : http://forum.hardware.fr/forum2.ph [...] post=60386
 
:whistle:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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