beendet eine setTimeout-Funktion vor ihrer eingestellten Zeit

8

Ich habe eine jquery-Funktion, die, wenn sie angeklickt wird, ein gesetztes Zeitlimit erzeugt, um ein div sichtbar zu machen.

Wenn jedoch eine andere Option während der settimeout-Länge ausgewählt wird, würde ich gerne wissen, wie man diese Funktion zerstört und alles andere bückt, was passiert.

Mein aktueller Code ist:

%Vor%

ein bisschen umständlich, aber funktioniert, bis dies geklickt wird:

%Vor%

Wenn die zweite direkt nach der ersten angeklickt wird, wird die Klasse 'cur' nach der eingestellten Zeit immer noch auf li # cv angezeigt.

Macht das Sinn !!!! ????

Hoffen Sie so!

    
DanC 02.06.2009, 16:40
quelle

2 Antworten

18

Die Funktion setTimeout gibt einen Bezeichner für dieses Zeitlimit zurück. Sie können dieses Zeitlimit dann mit der Funktion clearTimeout abbrechen. So können Sie etwas tun (füllen Sie die Lücken mit Ihrem Code):

%Vor%

Es ist jedoch nicht besonders sauber, eine globale Variable dafür zu behalten. Sie können den Timer im data Attribut eines Elements speichern, das für Ihre Situation am sinnvollsten ist. Etwas wie das:

%Vor%

Es sieht nicht wirklich sauberer aus, aber es ist eine alternative Möglichkeit, den Timer zu speichern ...

    
Paolo Bergantino 02.06.2009, 16:42
quelle
3

Sie können dazu clearTimeout() verwenden. Sie müssen den Rückgabewert von setTimeout() in einer Variablen beibehalten, um sie an clearTimeout() zu übergeben.

    
chaos 02.06.2009 16:43
quelle

Tags und Links