Wie pausiere ich einen setTimeout-Aufruf? [Duplikat]

7

Ich benutze jQuery und arbeite an einem Benachrichtigungssystem für meine Site. Die Benachrichtigungen werden automatisch mit der setTimeout-Funktion ausgeblendet.

Wie kann ich den Timer des setTimeout-Aufrufs stoppen?

Zum Beispiel möchte ich den setTimeout-Aufruf pausieren, während sich die Maus über der Benachrichtigung befindet, und den Countdown weiter ausführen ...

Ich habe gegoogelt "pause setTimeout" ohne Glück.

Ich lösche gerade den setTimeout-Aufruf mit clearTimeout und blende gleichzeitig die Benachrichtigung bei Mouseout aus, aber es wäre schön, diesen Pause-Effekt zu haben.

Irgendwelche Ideen?

    
Pablo 12.04.2010, 22:59
quelle

3 Antworten

10

Versuchen Sie es.

%Vor%     
John Hartsock 12.04.2010, 23:07
quelle
6

Es wäre nicht schwer, eine PausableTimeout -Klasse hinzuzufügen:

(Möglicherweise kein gültiges JS, aber es sollte nicht zu schwer sein, es zum Laufen zu bringen):

%Vor%

Natürlich wäre es eine gute Idee, dort eine Fehlerüberprüfung hinzuzufügen (ich möchte nicht, dass es möglich ist, das Timeout mehrere Male zu wiederholen und mit hunderten von Timeouts zu enden!), aber ich lasse es das ist dein Job: P

    
Ponkadoodle 12.04.2010 23:19
quelle
4

Verwende clearTimeout() bei einem mouseover-Ereignis und verwende setTimeout() erneut beim mouseout-Ereignis.

Ссылка

    
Haris 12.04.2010 23:04
quelle

Tags und Links