SetTimeout en javascript

Résolu
123pierre Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -  
123pierre Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous,

Pour essayer de comprendre setTimeout j'ai voulu faire le petit compte a rebours suivant.
Mais pourquoi diantre je passe directement a 0?
Je ne comprend pas pourquoi il n'y a pas de temporisation.

Merci a ceux qui vondront bien m'aider.

Voici le code.

<body>
<div id="clock">
</div>
</body>
<script language="javascript">
var maintenant=10;

function affiche(){	
document.getElementById("clock").innerHTML=maintenant;	
setTimeout(suivant(),5000);
}

function suivant(){
	if (maintenant>0){
	maintenant--;
	affiche();
	}
	alert("c'est fini");
	}
	
affiche();	
</script>



Cordialement,

Pierre.




3 réponses

A.Nonymous
 
Plutôt voir du côté de
setTimeout(suivant(),5000);
Et y préférer
setTimeout("suivant()",5000);

Sinon, il exécute la fonction de suite.
1
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
tu utilises dans ta fonction affiche la variable maintenant, elle n'existe pas dans la fonction il faut la passer en argument
idem pour l'autre fonction
<body>
<div id="clock">
</div>
</body>
<script language="javascript">
var maintenant=10;

function affiche(maintenant){	
document.getElementById("clock").innerHTML=maintenant;	
setTimeout(suivant(maintenant),5000);
}

function suivant(maintenant){
	if (maintenant>0){
	maintenant--;
	affiche(maintenant);
	}
	alert("c'est fini");
	}
	
affiche(maintenant);	
</script>
0
123pierre Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour a vous deux et merci beaucoup pour votre aide.
Oui en fait j'ai mis des apostrophes et ca marche.

Encore merci,

Pierre.
0