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