我试图有一个按钮,onclick 将loading
在发出一系列 ajax 请求之前将一个类(将光标设置为“等待”)应用到正文。
代码是:
$('#addSelected').click(function(){
$('body').addClass('loading');
var products = $(':checkbox[id^=add_]:checked');
products.each(function(){
var prodID = $(this).attr('id').replace('add_', '');
var qty = $('#qty_' + prodID).val();
if($('#prep_' + prodID).val())
{
prodID += ':' + $('#prep_' + prodID).val();
}
// Have to use .ajax rather than .get so we can use async:false, otherwise
// product adds happen in parallel, causing data to be lost.
$.ajax({
url: '<?=base_url()?>basket/update/' + prodID + '/' + qty,
async: false,
beforeSend: function(){
$('body').addClass('loading');
}
});
});
});
我试过做
$('body').addClass('loading');
在请求之前和作为 beforeSend 回调,但没有区别。
在萤火虫中,我可以看到直到请求完成后body
才能获得课程。loading
有任何想法吗?
我没有以我认为干净的方式对此进行排序,但我找到了解决方案。
如果我在块的末尾和setTimeout(function(){
上方添加,则该块会延迟,因此 addClass 首先发生。var products...
}, 1);
products.each