Jquery setInterval () funktioniert nicht

8

Ich versuche, eine Art Diashow zu erstellen.

Das Problem:

%Vor%

Dieser Code bewegt das div nur 1 Mal nach links.

Warum bewegt es das div nicht alle 300ms?

    
Cristy 29.12.2010, 16:03
quelle

5 Antworten

19

Sie müssen den Code in Intervallen in einer Funktion einfügen:

%Vor%

Haben Sie wirklich setInterval gemeint? Das wird immer wieder passieren, alle 300ms oder so. Wenn Sie möchten, dass es nur einmal passiert, verwenden Sie stattdessen setTimeout .

Aktualisieren : Wenn Sie das Intervall später abbrechen möchten, müssen Sie das Handle auf eine Variable speichern:

%Vor%

Beachten Sie die Verwendung von 0 für das Handle, wenn es nicht festgelegt ist. 0 ist ein ungültiger Rückgabewert von setInterval , auf den Sie sich verlassen können. (Sie können undefined oder null auch verwenden, wenn Sie möchten, achten Sie nur darauf, nach ihnen zu suchen.)

    
T.J. Crowder 29.12.2010, 16:05
quelle
4

In dem Aufruf von setInterval wird die Methode slides inline aufgerufen. Ändern Sie den Aufruf wie folgt:

%Vor%     
Chandu 29.12.2010 16:06
quelle
2

Der Grund, warum es nicht funktioniert, ist, dass Sie die Funktion aufrufen, die Sie an setInterval

übergeben

Sie müssen die Funktion in eine anonyme Funktion einfügen, um einen Parameter als Teil des Intervalls zu übergeben.

%Vor%

Beachten Sie, dass die slides(-30) jetzt in eine anon-Funktion eingeschlossen ist.

    
zzzzBov 29.12.2010 16:06
quelle
2

Oh, ich habe das Problem gefunden: D

%Vor%

Das Problem ist, dass "x" eine Konstante ist, und ändert die "links" zu x und behält es so.

Ich sollte dies tun:

%Vor%

Und vielen Dank für das Zeigen dieses "Packens": D.

    
Cristy 29.12.2010 16:20
quelle
0

Die kürzeste Antwort lautet:

%Vor%     
Raj Yadav 31.08.2017 07:23
quelle

Tags und Links