如何僅針對特定請求顯示ajax gif? 例如,我的頁面在後臺每隔30秒調用一次web服務,並且我不想在此回調期間顯示gif。另一方面,當我做手動ajax請求時,我想要顯示gif。如何僅顯示某個特定請求的ajax加載gif?
我正在使用jQuery。
編輯:我沒有設置全局處理程序,如http://api.jquery.com/ajaxStart/所示,只需附加到.ajaxStart事件即可。但我不想在每個請求中手動顯示/隱藏gif。我需要一些通用解決方案。
如何僅針對特定請求顯示ajax gif? 例如,我的頁面在後臺每隔30秒調用一次web服務,並且我不想在此回調期間顯示gif。另一方面,當我做手動ajax請求時,我想要顯示gif。如何僅顯示某個特定請求的ajax加載gif?
我正在使用jQuery。
編輯:我沒有設置全局處理程序,如http://api.jquery.com/ajaxStart/所示,只需附加到.ajaxStart事件即可。但我不想在每個請求中手動顯示/隱藏gif。我需要一些通用解決方案。
$('#manualRefresh').click(function(){
$('#myContainer').html('<img src="my-ajax-gif.gif">');
$.get(..., function(data){ ('#myContainer').html(data) });
});
那樣?
謝謝你,本,但請看我編輯的問題。 我需要一些通用的解決方案,不要在每個請求上重複顯示/隱藏代碼。 – 2010-04-22 18:58:21
如何使用Ben提供的匿名函數並將其包裝到一個函數(或插件,如果您在許多地方需要這個函數),它們都會顯示您的gif並提交您的請求? – justkt 2010-04-22 19:02:02
你是對的,KISS就是這樣。謝謝你,Ben,謝謝你,justkt。 – 2010-04-22 19:05:11
請試試這個:
$('#save').click(function(){
$('#ShowLoading').show();
$.ajax(..., success:function(data){....$('#ShowLoading').hide();},
error:function(){....$('#ShowLoading').hide();});
});
HTH
我用的是BlockUI plugin,使得它很容易真的。這是一個簡單的包裝功能,我寫了一些演示代碼:
function wjBlockUI(msg) {
var defaultMsg = '<img src="../images/activity.gif" />';
if (null !== msg) {
defaultMsg = msg
}
$.blockUI({ overlayCSS: { backgroundColor: '#aaa' }, message: defaultMsg });
}
你能提供更多的信息?在你的jQuery中,你在設置這個加載動畫?一小段或兩段代碼會非常有用。 – justkt 2010-04-22 18:48:46