2011-07-07 17 views
9

私はちょうどこれを見て、それがクールだと思う。jQueryの.delayメソッドはどのように動作しますか?

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

どのように.delayメソッドがフードの下で機能しますか?つまり、どのようにして3秒間待機するが、メインの制御フローを中断しないかを把握する方法はありますか?あなたがdelayを使用する場合

[ nextAction, 
    action, 
    action, 
    lastAction ] 

、それはプッシュ:

+1

http://james.padolsey.com/jquery/#v=1.6 .2&fn =遅延 – Neal

答えて

6

jQueryのことは単なる配列で、内部の "キュー" を目的としている

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

意味、それが遅延になったら、タイムアウトがあり、次のアクションが発生します。ただし、すぐに発生するアクションは、.cssのようになります。

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

遅延がありません。