2015-10-15 32 views
0

我有一個按鈕,用於進行一些處理和Ajax調用,所以我在jquery .click()中做到了這一點,它工作正常,但是當我嘗試加載微調器時,加載微調器並未出現在ajax結尾之前, .click()代碼。如何讓UI更新顯示在Jquery .click函數結束之前?

所以我想在.click()開始時啓動微調並隱藏在ajax成功上,怎麼做?

像:

$("#ConfirmBTN").click(function() { 

    $("#confirmBody").LoadingOverlay("show"); 
    ... some code 
       $.ajax({ 
       type: 'POST', 
       dataType: 'text', 
       url: url, 
       data: "jsonData=" + jsonData, 
       success: function (returnPayload) { 
       .. 
        $("#confirmBody").LoadingOverlay("hide"); 
       }, 
       error: function (xhr, ajaxOptions, thrownError) { 
        $("#confirmBody").LoadingOverlay("hide"); 
       }, 
       processData: false, 
       async: false 
      }); 

    } 
+1

擺脫同步阿賈克斯和你的問題將消失。如果你認爲你有使用同步ajax的理由,那麼你只需要學習如何使用異步ajax進行編碼。 – jfriend00

回答

1

擺脫async: false。然後你的點擊功能將返回到瀏覽器的主事件循環,並且它將更新顯示。

將取決於AJAX響應的任何代碼移動到success:函數中。

+0

謝謝你的作品正確! – AmgadMHM

相關問題