dequeue

dequeue

dequeue,函數名,用於移除每個匹配元素的指定隊列中的第一個函數,並執行被移除的函數。

該函數屬於jQuery對象(實例)。你也可以使用clearQueue()函數清空指定的隊列(不會執行其中的函數)。

語法


jQuery1.2 新增該函數。
jQueryObject.dequeue( [ dequeueName ] )

參數


參數描述
dequeueName可選/String類型指定的隊列名稱,默認為"fx"(表示jQuery中的標準動畫效果隊列)。

詳細說明


當調用 .dequeue() 時,會從序列中刪除下一個函數,然後執行它。該函數反過來會(直接或間接地)引發對 .dequeue() 的調用,這樣序列才能繼續下去。

返回值


dequeue()函數的返回值是jQuery類型,返回當前jQuery對象本身。

示例說明


以下面這段HTML代碼為例:
我們編寫如下jQuery代碼:
var $divs = $("div");
//為每個div元素上的隊列"q"設置(替換成)新的隊列
//(由於之前沒有隊列"q",這相當於新增一個對壘"q")
$divs.queue("q", [
function( next ){ alert("隊列函數1"); $(this).dequeue("q"); } , // 自動移除並調用下一個函數
function( next ){ alert("隊列函數2"); $(this).dequeue("q"); } ,
function( next ){ alert("隊列函數3"); $(this).dequeue("q"); }
]);
$("#btn").click( function(){
// 第一次點擊,一共會彈出9次對話框,因為有3個div元素,每個div都有一個包含3個函數的隊列
// 之後點擊該按鈕,不再彈出對話框,因為隊列中沒有函數了
$divs.dequeue("q");
} );
我們也可以不指定dequeueName參數,該參數的默認值為"fx",表示jQuery默認的效果隊列,代碼如下:
var $divs = $("div");
$("#btn").click(function(){
if( this.value == "開始執行" ){
// 為每個div元素設置兩個自定義動畫
$divs.animate( {width: 400, height: 200}, 1000 )
.queue( function(){
alert("暫停執行");
$("#btn").val( "繼續執行" );
} )
.animate( {width: 200, height: 100 }, 1000 );
}else{
$divs.dequeue( );
$("#btn").val( "開始執行" );
}});