Scusatemi ho utilizzato la funzione setTimeout e funziona, ma genera un fatto strano.
Ho la funzione sposta(n) che riceve in argomento un numero intero casuale e in base a quello sposta un div. La funzione viene richiamata all'interno di un ciclo for che ad ogni ciclo genera un nuovo numero da passare alla funzione.
Se richiamo la funzione così:
funziona tutto perfettamente, mentre se la richiamo così:
codice:
setTimeout("sposta(num)", 1000);
è come se la funzione riceve in argomento solo l'ultimo numero generato all'ultimo ciclo. Infatti il div che si sposta è sempre lo stesso. Per lo meno si sposta con un secondo di ritardo come indicato!
Qualcuno sa dirmi come mai? Dove sbaglio?
Ecco qua il codice.
codice:
<script language="Javascript">
function sposta(n) {
if (n == 1)
$(".div1").animate({"left": "+=10px"}, "fast");
else if (n == 2)
$(".div2").animate({"left": "+=10px"}, "fast");
else if (n == 3)
$(".div3").animate({"left": "+=10px"}, "fast");
else if (n == 4)
$(".div4").animate({"left": "+=10px"}, "fast");
}
for(var i=0; i<=10; i++) {
var num = Math.round(4*Math.random());
document.write(num); // Numeri stampati per info
setTimeout("sposta(num)", 1000);
}
</script>