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