有没有办法检测所有AJAX调用(GET和POST)?在AJAX调用进程运行时,我需要以通用的方式显示加载div。类似下面的代码:
$.ajax({
url: 'my/url',
type: "GET",
dataType: "json",
beforeSend: function() {
$('#loading').show();
},
success: function() {
$('#loading').hide();
// do some stuff...
}
而是调用每个AJAX beforeSend()
和success()
行为(显示和隐藏加载div),我正在寻找一种通用的方法来处理它。当我有一个AJAX调用时,我就这样做了:
$.ajax({
url: 'my/url',
type: "GET",
dataType: "json",
success: function() {
// do some stuff...
}
当beforeSend()
行为隐含在此请求中时,success()
隐藏行为相同。你知道我怎么能对待这件事吗?
谢谢大家!
答案 0 :(得分:4)
是的,您可以使用.ajaxStart()
& .ajaxStop()
等方法:
$(document).ready(function () {
$(document).ajaxStart(function () {
$('#loading').show();
}).ajaxStop(function () {
$('#loading').hide();
});
});
答案 1 :(得分:2)
有趣的是,我今天早上试图自己做这个!
$('#loading').bind('ajaxSend', function() {
$(this).show();
}).bind('ajaxStop', function() {
$(this).hide();
}).bind('ajaxError', function() {
$this.hide();
});
显然,有很多不同的方法可以实现这一点,但我更喜欢将加载消息的可见性绑定到AJAX事件,而不是相反...