$('#test-change1').toggle(function(){ $('#test-object1').hide('slow').queue(function(next){ $('#test-object1').appendTo($('#test-goal1')); next(); }).show('slow'); },function(){ $('#test-object1').hide('slow').queue(function(next){ $('#test-object1').appendTo($('#test-origin1')); next(); }).show('slow'); });
$("div").queue("custom", function(next) { $('div').css({'background':'red'}); next(); });
但就這段代碼而已,待你真正添加進網頁,而且嘗試運行,會發現並不是「所見即所得」,壓根就不會有任何效果。css
修改後:數據結構
$("div").queue("custom", function(next) { $('div').css({'background':'red'}); next(); }) .dequeue("custom"); //this is the key
通常對與dequeue()的定義是「刪除隊列中最頂部的函數,而且執行它」。我並不贊同用「刪除」這個字眼,而是傾向於「取出」,其實這個函數的功能就好像是一個數據結構中隊列的指針,待隊列中前一個函數執行完後,取下一個隊列最頂端的函數。app
$("#object") .delay(1000, "fader") .queue("fader", function(next) { $(this).animate({opacity: 0}, {duration: 1000, queue: false}); next(); }) .dequeue("fader") .animate({top: "-=40"}, {duration: 2000})
前1000毫秒,只有控制高度的「fx」隊列執行,然後1000毫秒,控制不透明度的「fader」隊列和控制高度的「fx」並行。這裏的並行就是queue:falseide
$('#section3a').slideUp(1000) .slideDown(1000) .animate({width: '50px'}, {duration: 1000, queue: false});
好比用隊列名取得匹配元素的長度:函數
var $queue=$("div").queue('fx');
很明顯,就是取得隊列名爲'fx'的隊列,若是想取得長度的話:動畫
var $length=$('div').queue('fx').length;
注意這裏的隊列長度只是匹配元素還未運行的隊列長度,當動畫運行完以後,隊列長度會自動歸爲0this
$('div').queue('fx',function(){ $('div').slideDown('slow') .slideUp('slow') .animate({left:'+=100'},4000); });//定義fx $('div').queue('fx2',function(){ $('div').slideDown('fast') .slideUp('fast') .animate({left:'+=100'},1000); });//定義fx2
這裏定義了兩個隊列,一個是慢隊列,也就是默認的'fx',另外一個是快隊列'fx2'指針
當點擊某個按鈕時:code
$('input').click(function(){ $('div').queue('fx',fx2); });