44 messaggi dal 14 gennaio 2014
Salve a tutti, come da oggetto, necessito di un help...
In poche parole ho un file ".js" con al suo interno due funzioni: "GetAllRecords" e "ScrollingText".
La funzione "GetAllRecords" fa una richiesta Ajax (con jQuery) ad una pagina che restituisce tramite jSON un array di dati.
La funzione "onSuccess" di jQuery, tramite il metodo parseJSON, parsa il jSON ricevuto come oggetto.
Dopodiché invoca il metodo "each" per analizzare ogni singola voce dell'array jSON convertito in Object.
(Tutto funge bene!)
Il problema è qui: nel ciclo "each" vado ad invocare la seconda funzione ("ScrollingText") che altro non fa che inserire il testo in una div e dopo, "anima" il testo muovendolo verticalmente (tramite il metodo "animate" di jQuery).
Ora: inserendo dei punti di interruzione, mi sono accorto che il ciclo "each", una volta avviata la funzione, continua senza aspettare l'esito...
Vorrei invece che il ciclo continuasse soltanto dopo che la funzione arrivasse all'istruzione "return"...
Sapete indicarmi come poter procedere?
Grazie mille!
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
se non ho capito male vorresti attendere che l'animazione di un elemento sia completata prima che l'animazione del successivo inizi?


Ora: inserendo dei punti di interruzione, mi sono accorto che il ciclo "each", una volta avviata la funzione, continua senza aspettare l'esito...

Questo non mi è molto chiaro. Penso che la tua aspettativa sia che la funzione animate sia bloccante per tutta la durata dell'animazione ma così non è, e quindi ti sembra che il foreach continui senza aspettare l'esito.

La chiamata ad animate non potrebbe essere bloccante, altrimenti la pagina risulterebbe irresponsiva per tutta la sua durata.

Una possibile soluzione consiste nell'impostare un interval che scoda un elemento da un array ad intervalli regolari e lo anima. Quando non ce ne sono più, distruggi l'interval. Ecco un esempio:
https://jsfiddle.net/nrydrgsn/

ciao,
Moreno

Enjoy learning and just keep making
44 messaggi dal 14 gennaio 2014
Ciao Moreno, la soluzione perfetta per risolvere il mio problema era proprio far sì che la funzione animate fosse bloccabile; ma questo giustamente non era possibile!
Ho adottato il tuo esempio, e con alcune modifiche ha funzionato!
Grazie mille!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.