2012-11-02 45 views
1

我想迭代我的表中的行,并为每个具有“警告”类的行发出ajax请求。这工作到目前为止。同步Jquery ajax请求不更新元素

rows.each(function (i) { 
    $.ajax({ 
     type: 'POST', 
     url: 'ajax/Update/' + $(this).attr('rel'), 
     success: function(c) { 
      $('.table > tbody > tr.r[rel="' + c.Id +'"]').removeClass('warning').addClass('error'); 
     }, 
     dataType: "json", 
     async:false 
    }); 
});​ 

删除类警告和添加类错误只会在主函数结束时显示。在设置课程的那一刻,有没有办法更新.each循环中的页面内容?我也想更新一个进度条,但当函数完成时它只跳到100%,而不是每行的20%。

+0

很难理解你想要做什么。也许你需要在AJAX回调中使用另一个.each函数? – pmandell

回答

0

对不起,另一个帐户。另一个我在工作中使用,因为我没有我的帐户详细信息。

我在jsFiddle上做了个快速的例子。

http://jsfiddle.net/m94Ay/3/

$('#Save').click(function() { 
    var persons = $('.table > tbody.persons > tr.warning'); 
    if (persons.length == 0) { 
     alert("Choose some persons please."); 
     return; 
    } 
    var step = 100/persons.length; 
    var i; 
    persons.each(function (i) { 
     $(this).removeClass('warning').addClass('error'); 
     sleep(1000); 
    }); 
}); 

检查三四个人在表中,按保存。而不是每秒删除和添加类,它似乎都在4秒后一起设置。

我只是用睡眠模拟ajax文章,因为效果保持不变。