jQuery.queue()和clearQueue()

不淨之心發表於2013-03-22
[color=red][b]jQuery.queue() 方法[/b][/color][url]http://www.w3school.com.cn/jquery/data_jquery_queue.asp[/url]
定義和用法
queue() 方法顯示或操作在匹配元素上執行的函式佇列。
註釋:這是底層級的方法;使用 .queue() 更加方便。
語法
.queue(queueName)

引數 描述
queueName 可選。字串值,包含序列的名稱。預設是 fx, 標準的效果序列。
操作佇列
queue() 方法操作在匹配元素上執行的函式佇列。
語法
.queue(queueName,newQueue)

引數 描述
queueName 可選。字串值,包含序列的名稱。預設是 fx, 標準的效果序列。
詳細說明
每個元素均可擁有一到多個由 jQuery 新增的函式佇列。在大多數應用程式中,只使用一個佇列(名為 fx)。佇列執行在元素上非同步地呼叫動作序列,而不會終止程式執行。典型例子時呼叫元素上的多個動畫方法。例如:
$('#foo').slideUp().fadeIn();
當這條語句執行時,元素會立即開始其滑動動畫,但是淡入過渡被置於 fx 佇列,只有當滑動過渡完成後才會被呼叫。
.queue() 方法允許我們直接對這個函式佇列進行操作。呼叫帶有回撥函式的 .queue() 方法特別有用;它允許我們在佇列末端放置一個新函式。
這個特性與動畫方法提供回撥函式類似,但是無需在動畫執行時設定回撥函式。
$('#foo').slideUp();
$('#foo').queue(function() {
alert('Animation complete.');
$(this).dequeue();
});

等價於:
$('#foo').slideUp(function() {
alert('Animation complete.');
});

[color=red]請注意,當通過 .queue() 新增函式時,我們應當確保最終呼叫了 .dequeue(),這樣下一個排隊的函式才能執行。[/color]
例子 1
對自定義函式進行佇列操作:
$(document.body).click(function () {
$("div").show("slow");
$("div").animate({left:'+=200'},2000);
$("div").queue(function () {
$(this).addClass("newcolor");
$(this).dequeue();
});
$("div").animate({left:'-=200'},500);
$("div").queue(function () {
$(this).removeClass("newcolor");
$(this).dequeue();
});
$("div").slideUp();
});

親自試一試 [url]http://www.w3school.com.cn/tiy/t.asp?f=jquery_data_queue_2[/url]
例子 2
設定佇列陣列來刪除佇列:
$("#start").click(function () {
$("div").show("slow");
$("div").animate({left:'+=200'},5000);
$("div").queue(function () {
$(this).addClass("newcolor");
$(this).dequeue();
});
$("div").animate({left:'-=200'},1500);
$("div").queue(function () {
$(this).removeClass("newcolor");
$(this).dequeue();
});
$("div").slideUp();
});

$("#stop").click(function () {
$("div").queue("fx", []);
$("div").stop();
});

親自試一試[url]http://www.w3school.com.cn/tiy/t.asp?f=jquery_data_queue_3[/url]


[b][color=red]clearQueue() 方法[/color][/b] [url]http://www.w3school.com.cn/jquery/data_clearqueue.asp[/url]
定義和用法
clearQueue() 方法從序列中刪除仍未執行的所有專案。
語法
.clearQueue(queueName)

引數 描述
queueName 可選。字串值,包含序列的名稱。預設是 fx, 標準的效果序列。
詳細說明
當呼叫 .clearQueue() 方法時,序列中未被執行的所有函式都會被從序列中刪除。如果不使用引數,則 .clearQueue() 從 fx (標準效果序列)中刪除剩餘的函式。在這種方式中,它類似於 .stop(true)。不過,.stop() 方法只用於動畫,而 .clearQueue() 也可用於刪除通過 .queue() 方法新增到通用 jQuery 序列的任何函式。
試一試:[url]http://www.w3school.com.cn/tiy/t.asp?f=jquery_data_queue_2[/url]

相關文章