私はこのistuationを持っています。私は、フェードアウトして要素をフェードインさせる関数にsetTimeoutを持っています。数秒でcleartimeoutでこのタイムアウトをクリアし、その直後に.hide()を呼び出してこの要素を非表示にします。問題は時には要素を隠さないということです。私はタイミングと関係があると感じています。cleartimeout関数が終了した後に実行します(jQuery)
例:
function first_func(){
$('.element').fadeOut(function(){
// Do other stuff like change element's position
$('.element').fadeIn();
});
interval1 = setTimeout(function(){first_func()},500);
}
function second_func(){
countdown--;
if (countdown<0){
last_func();
}
interval2 = setTimeout(function(){second_func()},1000);
}
function begin_func(){
first_func();
second_func();
}
function last_func(){
clearTimeout(interval1);
clearTimeout(interval2);
$('.element').hide();
}
だから基本的に問題はlast_funcに私は両方の間隔をクリアして、要素を非表示にすることであるが、時には要素がページに表示されたままです。だから私はそれを隠すんが、間隔がまだ進行中であり、それが戻ってフェードインすることを推測しています。
、誰もがいくつか提案してくださいあなたはlast_func呼び出すことがないように見える
申し訳ありませんが、私は頭から書いています。もちろん、end_func()を呼び出した後。私は帰ります。同じように。基本的にはすべてがうまくいっていますが、要素が隠されていない場合があります。 – Tom
@Tom okですが、hideを呼び出す前に 'stop(true、true)'を追加することをお勧めします。 – Niko
私はあなたに実際のコードを示すのが最善であると思っています。あなたはwww.tomasdostal.com/projects/thirst_gameでそれを見ることができます。しかし、コードは非常に乱雑です – Tom