1

テーブル内の行を反復処理し、「警告」クラスを持つすべての行に対して 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%ではありません。

4

1 に答える 1

0

別アカウントですみません。アカウントの詳細がなかったので、職場で使用したもう 1 つのアカウント。

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);
    });
});

テーブル内の 3 人または 4 人にチェックを入れて保存を押します。毎秒クラスを削除して追加する代わりに、4 秒後にすべてが一緒に設定されているようです。

効果は変わらないので、スリープで ajax ポストをシミュレートしました。

于 2012-11-02T17:42:52.240 に答える