jQuery reset setInterval-Timer

7

Meine JQuery:

%Vor%

Ich möchte, dass der Timer zurückgesetzt wird, wenn auf #reset geklickt wird.

    
Rails beginner 02.08.2012, 15:45
quelle

6 Antworten

10

Sie müssen Ihre "Timer" -Variable in einem Bereich belassen, der beim nächsten Aufruf der myTimer-Funktion verfügbar ist, damit Sie das vorhandene Intervall löschen und es in einem neuen Intervall zurücksetzen können. Probieren Sie:

%Vor%     
Matt 02.08.2012, 15:47
quelle
7

oder Sie könnten etwas in dieser Richtung tun:

%Vor%

und ausführen, wenn Sie müssen:

myTimer.set (); myTimer.reset ();

    
GnrlBzik 02.08.2012 16:09
quelle
2

Sie könnten Ihre myTimer() Funktion wie folgt neu schreiben:

%Vor%

Jetzt, wenn Sie myTimer() aufrufen, wird setInterval zurückgesetzt.

    
jAndy 02.08.2012 15:59
quelle
1

Löschen Sie den Timer jedes Mal, wenn er initialisiert ist. Sie müssen lediglich die Funktion erneut aufrufen, um den Timer zurückzusetzen:

%Vor%

FIDDLE

    
adeneo 02.08.2012 15:49
quelle
0

Hier ist ein Ansatz, der besser mit der Art und Weise übereinstimmt, wie JS entworfen wurde (als eine funktionale Sprache für diejenigen, die es noch nicht wissen). Statt sich auf eine globale Variable zu verlassen, verwenden Sie eine Schließung:

%Vor%

Nun gebe ich zu, dass das ziemlich chaotisch ist (und ungetestet), aber dieses Reset-Ereignis ist nur dann verfügbar, wenn es notwendig ist, und Sie verwenden keine Globals. Aber entscheidend ist, wo JS 'Kraft liegt: Funktioniert als Objekte der 1. Klasse, übergibt sie als Argumente und gibt Werte zurück ... geh einfach funktionswahnsinnig:)

Ich habe auch eine funktionierende Fiddle eingerichtet

    
Elias Van Ootegem 02.08.2012 16:10
quelle
0

Sie können auch ein jQuery-Timer-Plugin verwenden, dann müssen Sie die Variable nicht weitergeben.

Plugin: Ссылка

Beispiel für das Plugin: Ссылка

    
agrafix 28.08.2012 21:03
quelle

Tags und Links