Ich habe zwei Gruppen von Funktionen:jQuery führen eine Gruppe von Funktionen nach dem anderen
$(document).ready(function() {
var id = $(this).attr('id');
// First group of functions
getCountry(id);
// Second group of functions
getResult(id, 'all');
});
Innerhalb jeder Gruppe sind Funktionen Ajax Anrufe und miteinander verkettet. Es bedeutet, dass getCountry()
zuerst ausgeführt wird und getRegion()
auf success
Ajax Eigenschaft aufruft, dann getRegion()
Anrufe getTown()
auf success
Ajax Eigentum und so weiter. Diese Funktionen werden verwendet, um eine Formular-Dropdown-Liste (selects) zu füllen. Ich werde dann die Städte der Region des Landes bekommen, die ich ausgewählt habe.
Ich brauche die Formularlisten, die ausgefüllt werden müssen, bevor ich die getResult()
Funktion ausführen kann.
Ich will nicht getResult()
innen getCountry()
nennen, weil ich auch getResult()
verlangen, wenn der Benutzer Änderungen Optionen ausgewählt, nachdem die Seite geladen wird. In diesem Fall wird getResult()
verschiedene andere Parameter als 'all'
annehmen.
ich mich für eine einfache Möglichkeit, mich auf meine $(document).ready(function()
, um neu zu schreiben zu sagen:
- Erstens: laufen
getCountry()
und seine Abhängigkeit Funktionen - dann
getResult()
und seine Abhängigkeit Funktionen laufen
Ich bin ein wenig verloren in jQuery doc über Rückrufe und promise()
. Ich würde wirklich etwas Hilfe schätzen, um mir zu erlauben weiterzumachen, wissend, dass ich später ernsthaft zum Arzt zurückkehren werde.
Stellen Sie die 'getCountry'-Funktion auf' getResult 'und rufen Sie sie auf, wenn alle Ihre AJAX-Anfragen beendet sind. –
Entschuldigung, ich verstehe Ihren Kommentar nicht ... – wiltomap
Wie @RoryMcCrossan sagte, senden Sie eine Referenz von getResult in getCountry. Z.B. getCountry (id, 'alle', getResult). Und ändern Sie die getCountry-Definition so, dass sie einen weiteren Parameter wie getCountry (id, param2, resultCallback) enthält. Sobald die Verarbeitung der Methode getCountry abgeschlossen ist, rufen Sie getResult wie ResultCallback() auf; in diesem. –