Prüfen Sie, ob ein Intervall ausgeführt wird, und Umgekehrt
Also ich habe eine web-app mit basic-Authentifizierung.
Beim im angemeldet ist, wird ein Intervall festgelegt ist:
$("#login").click(function(e) {
var interval = setInterval(function(){myFunction();}, 2000); });
Dann, wenn ich ausgeloggt, muss ich halt das Intervall:
$("#logout").click(function(e) {
if(typeof interval !== 'undefined') clearInterval(interval); });
Aber es funktioniert nicht, ich denke, die Möglichkeit zu prüfen, ob ein Intervall vorhanden ist, ist falsch...ich kann das Intervall, damit es ausgeführt wird, wenn im angemeldet, aber ich muss Sie stop/löschen, es wenn ich auf mein Logout-button und es tut...
PS. im mit der Intervall-check "myFunction" automatisch alle 2 Sekunden, aber vielleicht gibt es eine andere Möglichkeit, dies zu erreichen ohne Intervall? thx
Intervall var nicht global und somit nicht verfügbar in der logout-Funktion. Wenn du global oder außerhalb der funcs und dann versuchen. Dann sollte es funktionieren.
Nehmen Sie es einfach heraus, da es nicht global. console.log() etwas damit, dass man weiß, dass es passiert.
demo hier jsfiddle.net/5he9oarw/3
Es gibt keine Erwähnung von JQuery in der Frage oder in den tags enthalten.
Nehmen Sie es einfach heraus, da es nicht global. console.log() etwas damit, dass man weiß, dass es passiert.
demo hier jsfiddle.net/5he9oarw/3
Es gibt keine Erwähnung von JQuery in der Frage oder in den tags enthalten.
InformationsquelleAutor xnanitox | 2016-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
interval
variable muss deklariert werden, in einem höheren Bereich, wo es verfügbar ist, um beide Funktionen. Wie Sie es jetzt haben, es ist eine lokale variable existiert NUR innerhalb der jeweiligen Aufruf des event-handler-Funktion. Also, wenn das nächste Ereignis-handler aufgerufen wird, dass das bisherige variable nicht mehr vorhanden. Möglicherweise möchten Sie auch zum Schutz gegen aufeinanderfolgende Klicks auf login:Und, brauchen Sie nicht zu überprüfen, um zu sehen, ob
interval
istundefined
. Sie können einfach anrufenclearInterval()
auf und esclearInterval()
schützen gegen jede ungültiges argument übergeben Sie es.InformationsquelleAutor jfriend00
Hier ist ein einfaches Beispiel, in welchem Intervall sollten Sie die variable im globalen scope für die beiden click-Ereignisse.
InformationsquelleAutor jameshwart lopez