2012-05-06 3 views
5

私はjQueryキューの多くの回答とブログ記事を読んでいます...特にこの特定の回答は多くを助けました - https://stackoverflow.com/a/3314877/1315811。しかし、jquery.comの標準ドキュメントと上記の答えは、jqueryコードを見てもらった。jqueryの '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

ありがとうございました、私は、 "inprogress"というセンチネルを考慮に入れておらず、待ち行列の長さで何かをすることを期待していました... – mspisars

関連する問題