jQuery クラスのメソッドは、戻り値として自身のオブジェクトを返してくれます。そのため、処理したいメソッドを続けて記述するメソッドチェーンが使えます。
メソッドチェーンでは、queueに登録された順にメソッドの処理が行われますが、すべてのメソッドがqueueに蓄積されるわけではないため、順の後ろにあるメソッドが、前の処理を待たずに発動してしまうことがあります。
そんなときに「queue(callback)」を使ってqueueに登録することで、発動を制御できます。また、queueの後にさらに続ける場合は、 dequeue() を使います。
サンプルは、animateする自分用のリマインダー項目です。一旦止まり、再び動き出すあたりに「queue()」、「dequeue()」を使っています。項目をクリックすると左に移動して消えます。 → ソースを表示/非表示(toggle)
$(function(){
$("#box0").animate({left:"300px",top:"150px"},4000)
.queue(function(){$(this).css({
backgroundColor:"#ffccaa",color:"#000",
fontSize:"18px",width:"150px",height:"70px"})
.dequeue();}).animate({left:"300px"},4000);
$("#box0").click(function(){
$(this).text("済み");
$(this).css({backgroundColor:"#0f0",width:"50px",height:"40px"});
$(this).animate({left:"-700px",top:"-250px"},8000);
});
});