2017-01-01 3 views
-2

Ich kann nicht scheinen, dies herauszufinden. Ich habe einen Ajax-Aufruf mit Jquery und wenn die Serverantwort erledigt ist, muss ein Element wie dieses $('#test').load(document.URL + ' #test'); geladen werden.Ajax Anruf warten bis geladen

Die Anzeigeeigenschaft des Stils des Elements wird auf none festgelegt. Nachdem die Antwort fertig ist, möchte ich das Element aktualisieren und wenn dies getan wird, als dieses Element anzeigen.

wenn ich versuche, dieses

.done(function() { 
    $('#test').load(document.URL + ' #test'); 
    $('#test').show(); 
}); 

Das Element zeigen, aber die Refresh nicht fertig ist, so dass es nach einem zweiten verstecken.

ich aslo versucht, es in einer Variablen zu setzen und die Ready-Funktion auf die Variable wie folgt aufrufen:

.done(function() { 
    var ready = $('#test').load(document.URL + ' #test'); 
    $(ready).ready(function() { 
    $('#test').show(); 
    }); 
}); 

auch nicht funktioniert.

Wie kann ich show() warten, bis die vorherige Zeile des Codes bereit ist?

THNX!

+3

den Anruf verwenden zurück ... siehe die Last() Dokumentation. http://api.jquery.com/load/ – epascarello

+0

Haben Sie versucht, den 'complete: function() {}' Ereignis-Listener hinzuzufügen? Ich benutze jQuery nicht viel, also bin ich mir nicht sicher, ob 'complete:' einem Callback gleichkommt. – NewToJS

+0

Neugierig, warum Ihre anfängliche Ajax nicht die benötigten Daten zurückgibt, anstatt 2 Ajaxaufrufe zu machen, da 'load()' auch ein Ajax-Aufruf ist – charlietfl

Antwort

1

Sie können die jQuery .load ‚s Rückruf wie unten verwenden:

.... 
    $('#test').load(document.URL + ' #test', function(){ 
      //PAGE LOADED 
      $('#test').show(); 
    }); 

.... 
+1

Thnx! Arbeitete für mich! – Justin

+0

@Scandeep können Sie mir helfen, die Lösung für dieses Q herauszufinden [Frage LINK___] (http://stackoverflow.com/questions/41450997/jquery-load-function-not-work-proper-way-when-i- bin-benutzend-multi) –

Verwandte Themen