2011-11-19 12 views

Odpowiedz

8

delay() wpływa tylko na kolejkę animacji, ale trigger() jest synchroniczna. Można użyć queue() zaplanować funkcję wyzwalania zdarzeń z opóźnieniem:

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

Awesome! Dzięki :) –

2

Sposób .delay() jest najlepsze dla opóźniania między kolejce efekty jQuery.

Aby opóźnić efekt początkowy, należy użyć funkcji setTimeout(). Nawiasem mówiąc, można użyć mouseover() zamiast trigger('mouseover')

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

jQuery API mówi:

Dopiero późniejsze wydarzenia w kolejce są opóźnione; na przykład nie opóźni to formalności bez argumentów funkcji .show() lub .hide(), które nie używają kolejki efektów.

Może można ustawić timer, który wyzwoli mouseover/out po 500 ms przy użyciu Windows.setTimeout

Powiązane problemy