2011-11-19 10 views

risposta

8

delay() interessa solo la coda di animazione, ma trigger() è sincrono. È possibile utilizzare queue() per programmare una funzione di innescare gli eventi dopo il ritardo:

$(".graphic").delay(500).queue(function(next) { 
    $(this).trigger("mouseover").trigger("mouseout"); 
    next(); 
}); 
+0

Impressionante! Grazie :) –

2

Il metodo .delay() è meglio per ritardare tra effetti jQuery in coda.

Per ritardare l'effetto iniziale, utilizzare la funzione setTimeout(). Tra l'altro, è possibile utilizzare mouseover() invece di trigger('mouseover')

setTimeout(function() { 
    $(".graphic").mouseover().mouseout(); 
}, 500); 
2

Il jQuery API dice:

Solo successivi eventi in una coda sono in ritardo; per esempio questo non ritarderà i moduli no-argument di .show() o .hide() che non usano la coda effetti.

forse si può impostare un timer, che attiverà passaggio del mouse/out dopo 500 ms utilizzando Windows.setTimeout