Ich habe den folgenden Code:Führen Sie eine Funktion in Timeout Looping
// After 8 seconds change the slide...
var timeout = setTimeout("changeSlide()", 8000);
$('div.slideshow').mouseover(function() {
// If the user hovers the slideshow then reset the setTimeout
clearTimeout(timeout);
});
$('div.slideshow').mouseleave(function() {
clearTimeout(timeout);
var timeout = setTimeout("changeSlide()", 8000);
});
Was ich passieren soll, ist die Funktion changeSlide alle 8 Sekunden in einer Schleife laufen zu lassen, es sei denn jemand die Diashow div schwebt. Wenn sie den Cursor entfernen, dann wiederholen Sie das Timeout!
jedoch nur die Schleife einmal passiert, und der Hover nicht das Timeout stoppen oder erneut starten:/
EDIT:
Diese Schleifen großartig, aber das Schweben und Ausschalten bewirkt, dass die Funktion mehr läuft Zeiten:
// After 8 seconds change the slide...
var timeout = setInterval(changeSlide, 2000);
$('div.slide').mouseover(function() {
// If the user hovers the slideshow then reset the setTimeout
clearInterval(timeout);
});
$('div.slide').mouseleave(function() {
clearInterval(timeout);
var timeout = setInterval(changeSlide, 2000);
});
Cool Ich habe den Code auf der Grundlage Ihrer Antwort geändert, aber es immer noch nicht die Zeitüberschreitung Schleife? – Cameron
Der Schlüssel besteht darin, setTimeout am Ende jedes changeSlide erneut aufzurufen, um die nächste Änderung in die Warteschlange zu stellen. Sie können setInterval auch verwenden, funktioniert wiederholt, anstatt einmal – Matt