2017-01-01 160 views
-2

我似乎無法弄清楚這一點。我有一個使用JQuery的Ajax調用,當服務器響應完成時,有一個元素像這樣重新加載$('#test').load(document.URL + ' #test');Ajax呼叫等待加載

元素樣式的顯示屬性設置爲無。完成響應後,我想刷新元素,並在完成時顯示該元素。

當我嘗試這個

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

元素將顯示,但刷新不這樣做,將一秒鐘後隱藏。

我ASLO試圖把它放在一個變量,並調用準備功能的變量是這樣的:

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

也不能正常工作。

如何讓show()等到上一行代碼準備就緒?

THNX!

+3

使用回撥......看到負載()文檔。 http://api.jquery.com/load/ – epascarello

+0

您是否嘗試添加'complete:function(){}'事件偵聽器?我不使用jQuery太多,所以我不確定'complete:'將等同於回調。 – NewToJS

+0

好奇你爲什麼你的初始ajax沒有返回所需的數據,而不是做2個Ajax調用,因爲'load()'也是ajax調用 – charlietfl

回答

1

您可以使用jQuery的.load的回調象下面這樣:

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

.... 
+1

Thnx!爲我工作! – Justin

+0

@Scandeep你能幫我找出解決這個Q [問題LINK___](http://stackoverflow.com/questions/41450997/jquery-load-function-not-work-proper-way-when-i- AM-使用的多) –