Oppure

Loading
21/08/09 9:49
XBarboX
Come si mette un delay in javascript che non sia la funzione setTimeout?(mi da dei problemi)
aaa
21/08/09 9:58
XBarboX
Il problema è il seguente:

andate sul sito sapientia.altervista.org
passate il bottone sopra il bottone "animali" e noterete che il menu non scende!


questo è il codice sorgente dello script:
function AllungaMenu(nome){

x = 23 - 1;
s = "";
m = 300;

do{
x = x + 1;
s = "";
s = x;
s = s + "px";
setTimeout('document.getElementById(' + nome + ').style.height = "' + s + '"',100);
}while(x<m);
}
Ultima modifica effettuata da XBarboX 21/08/09 10:05
aaa
22/08/09 20:17
pierotofy
Questo perchè il concetto è sbagliato; non puoi iterare la setTimeout in questa maniera, così facendo non fà altro che impostare N (dove N è il numero di volte che il ciclo viene ripetuto) timeouts che vengono eseguiti allo stesso momento (o quasi). Ovviamente l'effetto è che dopo 100 millisecondi solamente l'ultimo timeout viene eseguito (e degli altri N-1 non si vede l'effetto).

Il mio blog: piero.dev
23/08/09 11:13
XBarboX
Postato originariamente da pierotofy:

Questo perchè il concetto è sbagliato; non puoi iterare la setTimeout in questa maniera, così facendo non fà altro che impostare N (dove N è il numero di volte che il ciclo viene ripetuto) timeouts che vengono eseguiti allo stesso momento (o quasi). Ovviamente l'effetto è che dopo 100 millisecondi solamente l'ultimo timeout viene eseguito (e degli altri N-1 non si vede l'effetto).



Scusa adesso ho aggiornato il sito e non ha più quel codice.
Comunque come lo implementeresti tu?
aaa
23/08/09 15:58
NewAge
Se inizi ad usare javascript, ti consiglio moolto vivamente di utilizzarne una libreria, in parole povere ti consiglio jQuery. All'inizio sarà un po' complicato capirne il funzionamento ma poi andrai alla grande, senza contare il fatto che avrai eliminato tutti i problemi di compatibilità browser
aaa
23/08/09 16:18
pierotofy
Il mio blog: piero.dev