2012-12-04 70 views
5

我有一個簡單的jQuery代碼發送一個jQuery模式窗口中的內容與Ajax!一切工作都沒有任何問題。在正常後,點擊發送按鈕,1-2秒這個代碼後顯示結果,顯示加載前顯示發送結果jquery

function AddFastqpro(action) { 
    var b = {}; 
    b[dle_p_send] = function() { 
     var response = $('#dle-poke').val() 
     $.post(dle_root + 'engine/ajax/fast.php', { text: response, action: action }, 
     function (data) { 
      if (data == 'ok') { 
       DLEalert(dle_p_send_ok, dle_info); 
      } 
      else { DLEalert(data, dle_info); } 
     }); 
    }; 

    $('body').append("<div id='dlepopup' style='display:none'><textarea id='dle-poke'></textarea></div>"); 

    $('#dlepopup').dialog({ 
     autoOpen: true, 
     modal: true, 
     draggable: false, 
     width: 350, 
     dialogClass: "modalfixed", 
     buttons: b 
    }); 
}; 

我的問題是,如何添加,點擊發送後,並顯示結果前顯示加載圖片?

+1

負荷樣本上是這樣,檢查相關項目本頁面例如在... –

+0

我沒有看到你的點擊事件有 –

+0

HTTP: //stackoverflow.com/questions/2257975/using-beforesend-and-complete-with-post –

回答

13

您可以通過ajaxStart()做到這一點,ajaxComplete()

$("#loading").ajaxStart(function(){ 
    $(this).show(); 
}); 

$("#loading").ajaxComplete(function(){ 
    $(this).hide(); 
}); 

$.ajax({ 
    url : dle_root + 'engine/ajax/fast.php', 
    data: { text: response, action: action }, 
    beforeSend: function(){ 
    $("#loading").show(); 
    }, 
    complete: function(){ 
    $("#loading").hide(); 
    }, 
    success: function (data) { 
     if (data == 'ok') { 
      DLEalert(dle_p_send_ok, dle_info); 
     } 
     else { DLEalert(data, dle_info); } 
    }); 
}); 
+0

我應該把這個代碼? – Alireza

+0

@Alireza非常歡迎你,,,,, –

1

可以使用$.ajax()代替$.post(),並添加beforeSend功能

5
$('#button').click(function(){ 
    $('#loading-div').html('<img src="..." />'); 
    $.ajax({ 
     type: 'POST', 
     url: '...', 
     data: {...}, 
     success: function(response) { 
      $('#loading-div').html(''); 
     } 
    }); 
}); 

在情況下,如果你有的按鈕,有的<div id="loading-div"></div>,可以在其中顯示可用的圖像

http://api.jquery.com/jQuery.ajax/

+0

這還是最好的答案! – proofzy