2017-09-04 13 views
1

このコードがあり、うまくいきましたが、ボタンをクリックしたときにこれを検出してすべてのアニメーションを停止し、クリックしたボタンの新しいものjqueryの停止/終了が長すぎてアニメーションを停止できない

$(document).ready(function(){ 
var interval1,interval2,oref; 

interval1 = setInterval(function(){PureAnim("Pure");},1000); 

$("#Pure").click(function(){ 
    updateContent("index");}); 

$("#Comprar").click(function(){ 
    updateContent("Pacotes","Comprar");}); 

function updateContent(ref, botao = "Pure") 
{ 
     clearInterval(interval1); 
     $("#" + botao).finish(); //i've tried stop() here too 


     interval1 = setInterval(function(){PureAnim(botao);},500); 
     $("#mCont").load(ref + ".html #wauw"); 
} 

function PureAnim(ref){ 

     if($("#" + ref).css("opacity") == 1.0); 
     { 
      $("#" + ref).fadeTo(500, 0.0); 
     } 
     if($("#" + ref).css("opacity") == 0.0); 
     { 
      $("#" + ref).fadeTo(500, 1.0); 
     } 

} 
}); 

実際にはアニメーションが停止するのは大きな遅れです。 最初に他のボタンをクリックするとすぐに停止しますが、1回目以降はいくつかのPureAnimのステップが停止します。

私はすでに.finishをすべての可能な.stop()に変更しようとしましたが、どれも作業に入っていませんでした。

仕上げや読み込み機能についてではなく、jqueryがそれらのアニメーションをどのように処理するのか、それが原因である可能性が高いと思います。 Video of the error

+0

を使用すると、CSSアニメーションの代わりのJSを使用してみましたか? –

+0

いいえ、どうしてですか? –

+0

あなたの 'finish()'は間違った 'botao'に適用されます(終了したいものではなく* new *値に適用されます) - 終了を適用できるようにbotaoの値を保存する必要があります。 –

答えて

0

てみてください:

$("#" + botao).stop(true, true); 

または

$("#" + botao).stop(false, true); 
+0

私はすでに私はstop()を試して言ったように動作しません –

関連する問題