2011-07-07 17 views
9

Po prostu to zobaczyłem i myślę, że jest fajnie.W jaki sposób metoda .delay jQuery działa pod maską?

console.log("Starting..."); 
$("#my_element") 
    .fadeIn() 
    .delay(3000) 
    .fadeOut(); 
console.log("Finishing..."); 

Jak działa metoda .delay pod maską? Chodzi mi o to, w jaki sposób można poczekać 3 sekundy, ale nie przerywać głównego sterowania?

+1

http://james.padolsey.com/jquery/#v=1.6 .2 i fn = opóźnienie – Neal

Odpowiedz

6

jQuery posiada wewnętrzny "kolejki" obiekt, który jest tylko tablicą:

[ nextAction, 
    action, 
    action, 
    lastAction ] 

Podczas korzystania delay, to popycha:

function delay(ms){ 
    setTimeout(dequeue, ms) 
} 

To znaczy, że gdy dojdzie do opóźnienia, jest limit czasu, a następnie zostaje uruchomiona następna akcja. Działania, które zdarzają się natychmiast, jak .css jednak zrobić:

function css(){ 
    // do stuff 
    dequeue(); 
} 

bez opóźnienia.

Powiązane problemy