在一个网站中,我有几个由事件加载的ajax部分,主要是点击。要通知访问者,显示加载部分。这在大多数情况下都很好用,但有时ajax调用正在接收响应,因此很快干扰了beforeSend。
我的典型结构如下:
$(document).on('click', '.handler', function() {
var target = $(this).attr('data-targetElement');
$.ajax({
url: '/ajax.php?someParameter=hasValue',
beforeSend: showLoading(target)
})
.done(function(response) {
console.log('Hi there, I\'m done!');
$('#' + target).html(response);
});
});
// This is in a function because it's used by all ajax-calls
function showLoading(target) {
$('#' + target).html('My loading message');
}
问题是,当我检查控制台消息时,即使到达.done(),仍然显示加载消息,因为显示了Hi there, I'm done!
。
所以看起来beforeSend似乎没有达到完成状态或类似的东西导致它'冻结',因为targetElement中的内容没有用ajax-call的响应更新。
我不知道如何解决这个问题。有什么建议吗?
更新, 抱歉打字错误,我只是在这里输入示例代码......