2011-03-07 13 views
2

私は3つの段階のアニメーションを実行しようとしています。開いているボックスが最小化され、すべてが左にスライドし、クリックされたボックスが拡大されます。選択したボックスを展開する最後のアニメーションは、2番目のアニメーションの引数として呼び出されたときに3xを繰り返しますが、それを単独で呼び出すとうまく動作します。jQuery animate()repeat 3x

その私はあなたのHTMLがどのように見えるかわからないが、それはあなたのクリックが他の要素にまで泡立てると、この動作を引き起こしている可能性がありhttp://st-catherineschool.org/xbox/

$("#box2").click(
    function(){ 
     box = 2; 
     if(boxopen==box)return; 
     $("#box"+boxopen).animate({height:"-=30%", width:"-=10%", top:"+=20%", fontSize:"14px"}, 500, null, 
     function(){ 
     $("section").animate({right:"+=25%"},500,null, 
     function(){ 
      $("#box"+box).animate({height:"+=30%", width:"+=10%", top:"-=20%"}, 500); 
      $("#box"+boxopen).css("z-index", "8"); 
      $("#box"+box).css("z-level", "9"); 
      boxopen = box; 
     }); 
     }); 
    }); 

答えて

0

私はあなたがマッチした要素の任意の現在実行中のアニメーションを停止しjQuery#stop()、探していると思う:これを防ぐために、stopPropagation()

EXを使用しています。何も変化しない)(

// instead of: 
$('section').animate(…); 
// try this: 
$('section').stop().animate(…); 
+0

これはアニメーションを停止することで問題ではない、そのDOMバブルの問題! – RobertPitt

+0

.stop()を追加しても何も変わっていませんでした。 – austin

+1

あなたのことは間違っていました。あなたの例で間違ったセレクタを付けてしまいました。私が最後の関数でAKA#box2( "#box" + box)を置くと、それはどのようにして動作しますか? – austin

1

でホストされています。

$("#box2").click(
    function(e){ 
     e.stopPropagation(); 
     box = 2; 
     ..... 
+0

全ページがhttp://st-catherineschool.org/xbox/であるが、#1 BOX2は – austin

+0

e.stopPropagationで空

次のとおりです。このように、.animate()を使用する前.stop()を呼び出してみてください最初の関数では、しかし、私は他の人にそれらの関数のアニメーションが起こることはありません – austin