jquery ajax class,jQuery addClass()在jQuery.ajax()之前未运行

我正在尝试一个按钮,它会在发出一系列ajax请求之前,将onclick应用于类加载(将光标设置为“等待”).

代码是:

$('#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回调,但是没有区别.

在firebug中,我可以看到直到请求完成后,body才获得加载类.

有任何想法吗?

我没有以我认为干净的方式进行此排序,但是我找到了解决方案.

如果我在var product …和}上加上setTimeout(function(){,1);在product.each块的末尾下方,该块将延迟,因此addClass首先发生.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值