SetTimeout en javascript

Résolu
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

  1. Bonjour a vous deux et merci beaucoup pour votre aide.
    Oui en fait j'ai mis des apostrophes et ca marche.

    Encore merci,

    Pierre.
    1. 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. 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>