Petit problem de script [Résolu]

Signaler
Messages postés
368
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
14 mai 2010
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonjour je voudrais savoir pour ce script ne foncitonne pas.


Merci :





<script type="text/javascript">


var valeur;





function fonction1(valeur) {


alert('valeur incrementé : '+valeur);


setTimeout("fonction2(valeur)",1000);


}


function fonction2(valeur) {


valeur+=valeur;


fonction1(valeur);


}


</script>

6 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
ambiguïté aux niveau des paramètres
valeur non initialisée
syntaxe appel setTimeout avec paramètres

et ça sans préjuger du résultat, car
pas sûr de ce qu'il fallait faire et 2
fonctions non nécessaires à priori.

<script type="text/javascript">
var valeur=0;
function fonction1(plus) {
window.status+=' valeur incrementé : '+plus;
setTimeout( function() { fonction2(plus); }, 1000 );
}
function fonction2(increment) {
valeur+=increment;
window.status=" résultat : "+valeur;
fonction1(increment);
}
</script>



pour essais moins pénibles, j'ai
remplacé alert par window.status.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
368
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
14 mai 2010

Merci beaucoup ca marche nikel !

Mais je ne comprend pas la syntaxe de :



setTimeout( function() { fonction2(plus); }, 1000 );



Peut tu mexpliquer ?

Encore merci pour ton aide
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
c'est la syntaxe pour pouvoir passer des
paramètres, y compris sur des functions
ajoutées en dynamique. ( je sais pas simple,
impossible à inventer, mais c'est comme ça,
souvent, avec les langages de ce type, hélas )
sans paramètre setTimout("fonction();",delai) fonctionne.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
j'ai jamais compris pourquoi on ne faisait pas :


setTimeout( "fonction2("+valeur+");", 1000 );


personellement, c'est toujours ce que je fais... Pe une habitude, à
force de mélanger php et js, je finis par mélanger js et ... js. C'est
vrai que je suis un accro de la fonction eval, mais c'est corect ou pas
?




In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
pas testé coucou747 ?
peut-être que ça marche, mais dès qu'il y a
plusieurs paramètres la syntaxe devient
lourde, et dans certains cas ( autre qu'avec
setTimeout ) ça ne marche plus ( ? il me
semble avoir eu des soucis )
celle proposée me semble "plus simple",
"plus lisible", et fonctionne toujours
(? je m'avance là ).
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
c'est claire que ta solution parait plus claire, j'utilises la mienne par habitude seulement... (après tout, c'est corect...)


ma syntaxe devient assez lourde quand on utilise des arguments de type
chaines de caractères... et inutilisable pour les tableaux ou les
objets... (c'est quand même rare de mettre ça dans un setTimeout...)


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org