Javascript-Verzögerung zwischen Funktionsaufrufen für jeden Index in einem Array [closed]
Das Ziel:Führen Sie die Logik für jedes Element im Array aus.Warten
X
ms zwischen der nächsten Ausführung.mouseover(#slider)
pausiert Verzögerung - Wenn Verzögerung = 1000 ms und 300 ms verstrichen sind,mouseout(#slider)
würde den Countdown für die verbleibenden 700 ms fortsetzen.Nachdem Sie das letzte Element ausgeführt haben, wiederholen Sie die Schleife - für immer.Hier ist eine visuelle Erklärung:
var = s Array(1,2,3)
var x = s[1]; //get first element
console.log(x); //do something to it
wait(); //START wait timer 1000ms
//------------> timer : 300ms
//------------> user : mouseover (#slider) : pause timer
//------------> user : waited 5000ms
//------------> user : mouseout (#slider) : resume timer
//------------> timer : 300ms --> still 700ms to go!
//------------> timer : 500ms
//------------> user : mouseover (#slider) : pause timer
//------------> user : waited 10000ms
//------------> user : mouseout (#slider) : resume timer
//------------> timer : 500ms --> still 500ms to go!
var x = s[2]; //get second element
console.log(x); //do something to it
wait(); //START wait timer 1000ms
//------------> timer : 200ms
//------------> user : mouseover (#slider) : pause timer
//------------> user : onclick (.slideButton1) : change index of array and clear timer
//------------> user : waited 6000ms
//------------> user : mouseout (#slider) : resume timer
//------------> timer : 0ms --> still 1000ms to go!
var x = s[1]; //get first element ( index was changed by clicking button )
console.log(x); //do something to it
wait(); //START wait timer 1000ms
// ... s[2] ... s[3] ...
//theres nothing else in the array, lets start back from s[1] again!
Lösungen:jQuery:
Diese Lösung kam von einem verwandtenPost. Die offizielle Quelle dieses Plugins ist zu findenHier.
Einheimischer JS:
DieseAntworten durchAadit M Shah war sehr hilfreich. Er geht auch ins Detail überDelta-Timing und wie es in ähnlichen Fällen nützlich sein kann.
Neues Ziel:Extrahieren Sie eine dieser Methoden, um die Verwendung für andere Dinge zu ermöglichen.