如何在jQuery中完成第一个后执行语句?

时间:2014-06-13 14:05:22

标签: jquery jquery-blockui

我在jQuery中有以下代码

$.when($("#tbl").block({ message: 'Loading...' })).done(    
    $("#tbl > tbody > tr").each(function (i) {
        var cost = $(this).find("#Cost_" + i + "__Cost").val();

        $(this).find("#Cost_" + i + "__Cost").val(cost).change();
    }));

我试图先阻塞,然后将表格中一个单元格的值复制到另一个单元格,直到完成复制。但是一些原因阻止仅在循环结束后才起作用。

在这种情况下,如何在进入循环之前阻止?

TIA

1 个答案:

答案 0 :(得分:1)

来自jQuery BlockUI plugin

.block()是同步的,因此您不希望在此处使用$.when()

尝试:

$("#tbl").block({ message: 'Loading...' });

$("#tbl > tbody > tr").each(function (i) {
    var cost = $(this).find("#Cost_" + i + "__Cost").val();

    $(this).find("#Cost_" + i + "__Cost").val(cost).change();
});

$("#tbl").unblock();