2010-04-22 51 views
1

如何僅針對特定請求顯示ajax gif? 例如,我的頁面在後臺每隔30秒調用一次web服務,並且我不想在此回調期間顯示gif。另一方面,當我做手動ajax請求時,我想要顯示gif。如何僅顯示某個特定請求的ajax加載gif?

我正在使用jQuery。

編輯:我沒有設置全局處理程序,如http://api.jquery.com/ajaxStart/所示,只需附加到.ajaxStart事件即可。但我不想在每個請求中手動顯示/隱藏gif。我需要一些通用解決方案。

+0

你能提供更多的信息?在你的jQuery中,你在設置這個加載動畫?一小段或兩段代碼會非常有用。 – justkt 2010-04-22 18:48:46

回答

2
$('#manualRefresh').click(function(){ 
    $('#myContainer').html('<img src="my-ajax-gif.gif">'); 
    $.get(..., function(data){ ('#myContainer').html(data) }); 
}); 

那樣?

+0

謝謝你,本,但請看我編輯的問題。 我需要一些通用的解決方案,不要在每個請求上重複顯示/隱藏代碼。 – 2010-04-22 18:58:21

+0

如何使用Ben提供的匿名函數並將其包裝到一個函數(或插件,如果您在許多地方需要這個函數),它們都會顯示您的gif並提交您的請求? – justkt 2010-04-22 19:02:02

+0

你是對的,KISS就是這樣。謝謝你,Ben,謝謝你,justkt。 – 2010-04-22 19:05:11

1

請試試這個:

$('#save').click(function(){ 
    $('#ShowLoading').show(); 
    $.ajax(..., success:function(data){....$('#ShowLoading').hide();}, 
      error:function(){....$('#ShowLoading').hide();}); 
}); 

HTH

0

我用的是BlockUI plugin,使得它很容易真的。這是一個簡單的包裝功能,我寫了一些演示代碼:

function wjBlockUI(msg) { 

var defaultMsg = '<img src="../images/activity.gif" />'; 

if (null !== msg) { 
    defaultMsg = msg 
} 

$.blockUI({ overlayCSS: { backgroundColor: '#aaa' }, message: defaultMsg }); 

}