Ich habe diese ituation. Ich habe eine setTimeout zu einer Funktion, in der ich ein Element ausgeblendet und eingeblendet habe. In einigen Sekunden wird diese Zeitüberschreitung mit cleartimeout gelöscht und gleich danach wird .hide() aufgerufen, um dieses Element auszublenden. Das Problem ist, dass manchmal das Element nicht versteckt wird. Ich habe das Gefühl, dass es etwas mit Timing zu tun hat.Ausführen nach der Cleartimeout-Funktion beendet (jQuery)
Beispiel:
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();
}
Also im Grunde das Problem ist, dass in last_func ich beiden Intervalle lösche und das Element verbergen, aber manchmal ist das Element immer noch auf der Seite sichtbar. So dass ich vermute, es nicht zu verbergen, aber das Intervall ist noch im Gange und es verblasst wieder in.
Wenn jemand einen Vorschlag bitte
Sorry, ich habe es vom Kopf geschrieben, ich habe nicht die eigentliche Quelle infront von mir gerade jetzt. Natürlich nach dem Aufruf von end_func(); Ich komme zurück; auch. Grundsätzlich funktioniert alles sehr gut, nur manchmal ist das Element nicht versteckt – Tom
@Tom ok, aber in Betracht ziehen, die 'stop (true, true)' vor dem Aufruf verstecken, das kann helfen. – Niko
Ok, ich denke, es ist am besten, dir den richtigen Code zu zeigen, du kannst ihn auf www.tomasdostal.com/projects/thirst_game sehen. Aber der Code ist sehr chaotisch – Tom