2012-11-09 13 views
6

Sto provando a eseguire queste chiamate removeClass in successione. Non sembra esserci una funzione di richiamo usando removeClass, quindi c'è un altro modo per emularlo?Posso emulare una funzione di callback da jquery removeClass?

$("#card1").removeClass('flip'); 

    //wait for card1 flip to finish and then flip 2 
    $("#card2").removeClass('flip'); 

    //wait for card2 flip to finish and then flip 3 
    $("#card3").removeClass('flip'); 
+0

è sempre possibile utilizzare un timer – Huangism

+0

non c'è attesa per la rimozione di una classe da un elemento. Si rimuove e si aggiunge. Qual è il punto? –

+0

Fa parte delle transizioni con CSS3 quindi sto cercando un effetto divertente. – Paul

risposta

8

Sembra che si stia utilizzando la transizione CSS3 per farlo. Il modo più semplice per farlo è quello di impostare il ritardo manualmente:

$("#card1").removeClass('flip'); 

setTimeout(function(){ 
    //wait for card1 flip to finish and then flip 2 
    $("#card2").removeClass('flip'); 
}, 500); 

setTimeout(function(){ 
    //wait for card2 flip to finish and then flip 3 
    $("#card3").removeClass('flip'); 
}, 1000); 

Non c'è costruito nel metodo di jQuery per verificare che la transizione css è completa.

+1

L'evento 'transitionEnd' (o' webkitTransitionEnd' etc) dovrebbe funzionare. – pimvdb

+0

... o 'mozTransitionEnd' ecc. Penso che il timer sia migliore al giorno d'oggi e sarà più a prova di proiettile nel caso in cui l'evento' transitionEvent' non sparerà. – Inferpse

+0

d'accordo, questo ha fatto il trucco, grazie! – Paul