語法
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( "開始執行" ); }}); |