Per favore perdonatemi se questo è ovvio.Come scrivere un ciclo in jQuery che aspetta che ciascuna funzione si completi prima di continuare il ciclo
Ho una quantità sconosciuta di elementi su una pagina, che ho bisogno di scorrere uno alla volta e fare cose a. Tuttavia, ho bisogno che il ciclo si interrompa fino a quando le funzioni utilizzate sugli elementi non sono state completate e quindi si prosegue alla successiva iterazione.
Ho provato a farlo in un ciclo $ .each, ma ha sparato i comandi molto rapidamente e terminato senza attendere il loro completamento.
Qualche idea?
$('elem').each(function(){
$(this).fadeIn().wait(5000).fadeOut();
});
Questo è quello che ho, molto semplice. Ho ottenuto la funzione wait() da qui: jquery cookbook site.
Il problema è che il ciclo non fa wait: il comando effettivo funziona come previsto, è solo che tutti si attivano contemporaneamente.
Qualsiasi aiuto apprezzato, grazie.
EDIT: Dopo questo viene eseguito, mi può essere utile per poi eseguire di nuovo il ciclo, in modo che l'elenco dei elems sarà sbiadito in/out di nuovo in sequenza
EDIT2: da allora hanno ottenuto la 1.4.2 jQuery lib, stava usando 1.3.2, da qui la funzione di attesa() personalizzata. Ora usando delay() come menzionato da lobstrosity. Riuscito a mettere insieme qualcosa di simile a quello di cui ho bisogno dalla sua risposta, grazie a lobstrosity :).
aaaahh questo è abbastanza vicino, grazie. E stavo usando la versione 1.3.2, ho appena ricevuto l'ultima lib, grazie per averlo indicato. L'unico problema con questo è che una volta eseguite le azioni su $ ('. Elem'), potrei voler ripetere tutto. Modificherò la domanda per refelct questo, dovrei averlo menzionato, grazie. – alan
Non l'ho ancora perfetto, ma questo ha risposto alla mia domanda, grazie mille. – alan