dequeue

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

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

語法,參數,詳細說明,返回值,示例說明,

語法

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

參數

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

詳細說明

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

返回值

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

示例說明

以下面這段HTML代碼為例:
<input id="btn" type="button" value="執行佇列" />
<div id="n1" style="width: 200px; height: 100px; border: 1px solid #ccc;" ></div>
<div id="n2" style="width: 200px; height: 100px; border: 1px solid #ccc;" ></div>
<div id="n3" style="width: 200px; height: 100px; border: 1px solid #ccc;" ></div>
我們編寫如下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( "開始執行" );
}});

相關詞條

熱門詞條

聯絡我們