SetTimeout en javascript

Résolu
123pierre Messages postés 53 Statut Membre -  
123pierre Messages postés 53 Statut Membre -
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 5413 Statut Membre 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 53 Statut Membre 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