使用jquery ajax时显示“加载”的最简单方法?

我想知道向特定的jquery ajax请求显示“加载”gif的最简单方法。

我试过了:

$(document).ajaxStart(function() { $('.hideOnLoad').hide(); }); $(document).ajaxStop(function() { $('.hideOnLoad').show(); }); 

但是所有ajax请求都会触发它。 我只想要一个特定的jquery ajax请求来触发加载过程(可能会显示一个gif)。

我怎么做?

beforeSend回调中,你必须显示微调器, complete你必须隐藏它。 仅供参考: ajaxStartajaxStop是全局ajax事件,而beforeSendcomplete是本地事件。

我经常这样做

 $('#someTrigger').click( function(el) { // do my ajax request with callback, onComplete $('.someImageClass').show(); }); function onComplete(resp, respText, XMLHttpRequset) { // do stuff $('.someImageClass').hide(); } 

只需在开始ajax调用之前显示图像,然后在ajax“success”或“complete”处理程序中隐藏它。

将容器的内容设置为gif图像。 然后进行Ajax调用。 Ajax回调函数将删除gif图像。

我倾向于做一些事情:

 $('#some-div').addClass('loading'); 

当我开始和

 $('#some-div').removeClass('loading'); 

当我完成的时候 然后我有

 #some-div { background: transparent url('ajazz-loader.gif') no-repeat center center; } 

在我的CSS。 干净整洁。