2010-04-22 60 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 }); 

}