So beenden Sie eine Funktion ausgeführt?
Habe ich eine Funktion, aber es läuft weiter, auch wenn ich es nenne, ein stop()
.
Der name der Funktion ist function slide() { //codes here }
slide().stop();
Wie um ihn zu stoppen, ausgeführt?
Und wie, es wieder zu laufen nach stoppen?
So werde ich die volle Kontrolle über es.
.slide
ist nicht eine bekannte Methode in jQuery Core oder jQuery UI. Verwenden Sie eine benutzerdefinierte Plug-in implementiert diese Methode, oder sind Sie vielleicht als Hinweis auf .slideUp
oder .slideDown
?Folie() ist meine Funktion name, es hat viele codes drin.
jquery
stop
funktioniert nur auf jquery Animationenokay, also wie kann ich verhindern, dass eine Funktion? Weil es läuft immer noch im hintergrund.
Was machst du innerhalb der
slide
Methode ? Normalerweise können Sie nicht beenden Sie die Ausführung einer Funktion, da die Ausführung sequenziell..InformationsquelleAutor Ryan | 2011-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
.stop
ist eine Methode zum anhalten von Animationen, läuft asynchron (im hintergrund) auf das aktuelle element. Es doesn ' T unterbrechen/beenden Sie alle anderen code, der nicht mit der Effekte-Bibliothek.Stattdessen sollten Sie einen Blick auf
.Warteschlange
, die können Sie benutzerdefinierte setup-queues, können Sie deaktivieren oder entfernen.Gibt es bereits sehr gute Antworten, wie
.queue
so werde ich Ihnen diese Frage stattdessen: Kann jemand erklären, jQuery-Warteschlange zu mir? - Schau dir die Antwort von gnarf.InformationsquelleAutor mekwall
Wenn es trifft, der eine bestimmte Bedingung in der Diashow-Funktion verwenden Sie einfach ein
return;
Anweisung zum beenden der Funktion. Dann, um es zu starten wieder nur daran erinnern, der Funktionslide()
. Sie können nicht verwenden Sie code außerhalb der Funktion, um es beenden, muss Sie innerhalb der Funktion.return;
else if ein true übergeben wurde, in der Funktion laufen würde wie normal. Danke für die Idee.InformationsquelleAutor amurra
Hatte das gleiche problem und nach dem Lesen der letzten Antwort von amurra dies ist, was ich getan habe...
Deklariert eine Globale variable, indem Sie es an das 'window' - Objekt. Diese wird als eine Flagge und entscheiden, ob zu halten, ruft der 'slide_it ()' - Funktion oder beenden Sie (return)
Sobald Sie die Maus über die $(element) die slide_it () - Funktion wird die Iteration selbst. Und es wird nur beendet, wenn Fenster.slide_it auf false gesetzt ist. So dass Sie nur set-Fenster.slide_it auf false, wenn "mouseleave"s
Hoffe es hilft jemand anderes mit dem Problem!
InformationsquelleAutor sanchy
Wenn Ihre Funktion eine lange laufende javascript-Prozess, Sie sollten eine Art von äußeren Haken, die verhindern, dass es die Ausführung ist, und weiterhin, wenn gewünscht. Wenn Sie eine while-Schleife, in der er Sie prüfen sollte, gegen ein außen Zustand zu stoppen Ausführung. Wenn Sie nicht über eine Schleife im üblichen Sinne, Sie müssen einen anderen Weg finden, zu überprüfen, Funktion Betriebszustand Klimaanlage.
Es ist generell nicht möglich, unterbricht eine laufende Funktion in Javascript. Nicht ohne zusätzlichen code.
Lange Laufenden Funktionen werden unterbrochen von Browsern durch den Benutzer zu Fragen, ob Sie das Skript mit der Ausführung fortfahren oder lieber aufhören, es (browser wird davon ausgegangen Ausführung hat gehängt, wie in einer Endlosschleife).
Wenn Sie haben eine lang ausgeführte Funktion, die in Javascript sollten Sie split fnctionality in mehrere Teile und verwenden javascript-threading Technik, die zu Verzögerungen der Ausführung von kurzen Funktionen eine nach der anderen durch
window.setTimeout(function, delay);
InformationsquelleAutor Robert Koritnik