2011-07-07 14 views
9

Sadece bunu gördüm ve harika olduğunu düşünüyorum.jQuery'nin .delay yöntemi kaput altında nasıl çalışır?

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

.delay yöntemi, başlık altında nasıl çalışır? Demek istediğim, 3 saniye beklemeyi ama ana kontrol akışını kesmemeyi nasıl anlıyor? Eğer delay kullandığınızda

[ nextAction, 
    action, 
    action, 
    lastAction ] 

, bu iter:

+1

http://james.padolsey.com/jquery/#v=1.6 .2-fn = gecikme – Neal

cevap

6

jQuery bu sadece bir dizidir, bir iç "kuyruk" nesne vardır

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

Anlamı o gecikmeden alır sonra, bir zaman aşımı var ve bir sonraki aksiyon başlatıldı. Ancak .css gibi, hemen gerçekleştirilmesi Eylemler, yapın:

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

hiçbir gecikme.

İlgili konular