Probleme beim Ausführen eines jquery ajax Aufrufs innerhalb einer Funktion

7

Ich möchte einen Ajax-Aufruf in eine Funktion einfügen, da ich ihn wiederholt an mehreren Stellen verwende. Ich möchte eine manipulierte Version der Antwort zurückgegeben. Hier ist, was ich versuche (stark vereinfacht).

%Vor%

Was jedoch passiert, ist, dass die append-Funktion ausgeführt wird, bevor "a" in der Funktion getAjax definiert wurde. Irgendwelche Gedanken?

    
dwelch 18.10.2010, 22:25
quelle

4 Antworten

8

Es gibt zwei Möglichkeiten, dies zu kennzeichnen. Eine besteht darin, den Erfolgsrückruf zu verwenden:

%Vor%

Der andere besteht darin, async auf false Ссылка zu setzen:

%Vor%

Wichtiger Hinweis zu nicht asynchron:

Domänenübergreifende Anforderungen und dataType: "jsonp" -Anfragen unterstützen keine synchrone Operation.

    
Niko 18.10.2010, 22:38
quelle
13

AJAX ist asynchron. Dies bedeutet, dass der Code im Erfolgshandler verzögert wird, bis die Anfrage erfolgreich ist, während der Rest des Codes normal weiterläuft. Sie müssen den entsprechenden Code in den AJAX-Success-Handler einfügen:

%Vor%

Beachten Sie, dass ich Ihren body Selektor auch mithilfe des nativen Javascript document.body optimiert habe, anstatt den Standard-Tag-Selektor zu verwenden.

Bearbeiten Rückrufversion

%Vor%

Sie können den Code nun inline mit einer Callback-Funktion ausführen:

%Vor%

oder

%Vor%

oder was auch immer.

Der Code innerhalb des anonymen Funktionsaufrufs wird verarbeitet, wenn die AJAX-Anforderung abgeschlossen ist.

    
lonesomeday 18.10.2010 22:29
quelle
2

Ein Vorschlag, den ich habe, besteht darin, einen Trigger an den Befehl zu übergeben, der in der AJAX-Funktion ausgeführt werden soll, damit er ausgeführt wird, nachdem AJAX eine Antwort erhalten hat -

%Vor%

Auf diese Weise können Sie if-Anweisungen / andere Alternativen erstellen, um den gleichen AJAX-Befehl für unterschiedliche Ergebnisse zu verwenden

    
dpmguise 18.10.2010 22:36
quelle
1

Warum geben Sie die Antwort nicht an eine andere Funktion im Erfolgsrückruf zurück? Dies sollte Ihre Notwendigkeit für verschiedene Antworten behandeln:

%Vor%     
amurra 18.10.2010 22:33
quelle

Tags und Links