2012-05-06 13 views
5

मैंने jQuery कतारों पर कई उत्तरों और ब्लॉग पोस्ट पढ़े हैं ... और विशेष रूप से इस विशेष उत्तर ने बहुत मदद की है - https://stackoverflow.com/a/3314877/1315811। लेकिन, jquery.com पर दोनों मानक दस्तावेज़ और ऊपर दिए गए उत्तर में मुझे jquery कोड http://code.jquery.com/jquery-1.7.2.jsjquery ऑटो में 'fx' कतार कैसे शुरू होती है?

जो मैं समझ नहीं पा रहा हूं - कोड से - 'fx' (डिफ़ॉल्ट) कतार ऑटो-स्टार्ट कैसे करता है। कतार के बाद विशेष रूप से खाली हो गया है।

उदाहरण के लिए कस्टम कतार पर, जब आप मैन्युअल रूप से कतार शुरू करते हैं, और कतार कॉल करने के लिए फ़ंक्शंस से बाहर चला जाता है, तो कतार का कोई भी संदर्भ अब अमान्य नहीं है, इसलिए मैं jquery कोड में कहीं भी अपेक्षा करता हूं कतार की स्थिति को समझें और यदि यह खाली था तो ऑटो ऑटो शुरू हो गया? कोड थोडा दिखाता है कि मैं किस भाग में भाग गया, अगर मुझे कोड का एक टुकड़ा याद आ रहा है (मैं ऊपर उल्लिखित कोड में लाइन देख रहा हूं: 2060-2160) कृपया मुझे बताएं।

> var aq = $({}); 
> aq.queue("mp").length 
0 
> n1 = aq.queue("mp") 
[] 
> n1.length 
0 
> aq.queue("mp", function (next) { setTimeout(next, 5000); }) 
[Object] 
> aq.queue("mp", function (next) { setTimeout(next, 5000); }) 
[Object] 
> aq.queue("mp", function (next) { setTimeout(next, 5000); }) 
[Object] 
> n1.length 
0 
> aq.queue("mp").length 
3 
> n1 = aq.queue("mp"); // reset n1 to the "new" queue... 
> n1.length 
3 

इसके अलावा, यदि इसका कोई भी हिस्सा अस्पष्ट है, तो कृपया मुझे बताएं और मैं तदनुसार अपडेट करूंगा।

उत्तर

1

queue कोड के भीतर कोड के इस बिट ऑटो शुरू संभालता है:

if (type === "fx" && queue[0] !== "inprogress") { 
    jQuery.dequeue(this, type); 
} 

कतार पंक्तिबद्ध किया जा रहा fx है और कतार पहले से प्रगति नहीं है, तो dequeue कहा जाता है।

+0

धन्यवाद, मैं प्रेषित "प्रगति" को ध्यान में नहीं रख रहा था और उम्मीद थी कि उन्हें कतार की लंबाई के साथ कुछ करने की उम्मीद है ... – mspisars

संबंधित मुद्दे