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