Warten Sie auf den Rückruf, bevor Sie die Schleife fortsetzen
Habe ich eine for-Schleife wechsele ich durch.
Möchte ich ein custom modal und warten auf eine Antwort, bevor Sie fortsetzen.
Wie kann ich das erreichen? Ich weiß, ich habe zu warten, für einen Rückruf.
Wie in diesem Beispiel:
for(var x in array){
alert(x);
console.log(x);
}
Es tut genau das, was ich will. Aber ich will nicht noch drei Tasten.
Aber warnen ist nicht Teil von javascript(? Es ist in den browser.)
So, habt Ihr eine Idee?
Ich dachte an sowas:
var run = true;
function foo(){
if (run){
setTimeout(foo, 500);
}
}
function stop(){
run = false;
}
foo();
warten und dann für einen Stopp, die Anrufe auf eine Schaltfläche klicken, bevor Sie fortfahren. Aber ist dies tatsächlich gute Praxis?
Oder verwenden Sie eine lambda-Funktion, die als parameter der customAlert und eine "Globale" variable, die enthält die aktuelle position des array gehe ich durch und tun Sie dies mit den Funktionen. Wie: Prüfen, ob array ist halt immer keys größer als X.
Führen Sie dann die Funktion erneut aus, und jedes mal, erhöhen Sie die globalen X.
Danke lostsource für den code:
Oh, ich habe eine Idee; ich werde einfach lostsource die Lösung innerhalb einer anonymen Funktion, so dass ich nicht bekommen, Globale Variablen. Ausgezeichnet.
(function(){
})();
InformationsquelleAutor der Frage Muqito | 2013-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, dies ist dein array
Können Sie versuchen, mit diesem loop /callback-Ansatz
Verwendung:
JSFiddle hier: http://jsfiddle.net/D9AXp/
InformationsquelleAutor der Antwort lostsource
MaggiQall, ich weiß, Sie haben eine Antwort, aber ich habe eine flexible Lösung, die möglicherweise für Sie von Interesse sein oder vielleicht jemand anderes.
Die Lösung hängt davon ab, jQuery (1.7+) und jQuery UI ist
dialog
aber implementiert ist, als eine eigene Methode der Array-Prototyp, nicht als jQuery-plugin.Hier ist die Array-Methode :
Array.runDialogSequence()
stützt sich auf :Hier ist ein Beispiel "openDialog" - Funktion mit Erläuterungen :
Array.runDialogSequence()
gibt ein jQuery -promise
ermöglicht benutzerdefinierte Aktionen durchgeführt werden, wenn der dialog-Sequenz abgeschlossen ist (done-Funktion) oder ist gebrochen in der Mitte der Sequenz (fail-Funktion).Hier sind ein paar Beispiel-Aufrufe :
DEMO
Dies ist so nah an eine verallgemeinerte Lösung als meine Phantasie es zulässt.
InformationsquelleAutor der Antwort Beetroot-Beetroot