5

私はjQueryキューに関する多くの回答とブログ投稿を読みました...そして特にこの特定の回答は大いに役立ちました-https://stackoverflow.com/a/3314877/1315811。しかし、jquery.comの標準ドキュメントと上記の回答の両方で、jqueryコードhttp://code.jquery.com/jquery-1.7.2.jsを確認することができました。

私が理解できないこと-コードから-'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

また、不明な点がある場合はお知らせください。随時更新いたします。

4

1 に答える 1

1

コード内のこのqueueコードは、自動開始を処理します。

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

キューに入れられているキューがfxであり、キューがまだ進行中でない場合、dequeueが呼び出されます。

于 2012-05-06T03:17:57.893 に答える