Semplicemente perché la condizione non viene più riletta, puoi risolvere utilizzando setTimeout()
codice:<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> var wActive = true; var numAttuale = 10; function upd() { if(wActive === true) { if(numAttuale > 0) { $("#secs").html(numAttuale - 1); numAttuale = parseInt($("#secs").html()); if(numAttuale>0) setTimeout("upd()", 1000); else alert("Ciao"); } } } setTimeout("upd()",1000); </script> <div id="timer">Attendi <span id="secs">10</span> secondi</div>

Rispondi quotando