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); }); });