-1

我正在使用 jquery.calculate 创建一个发票系统。

        var newIDSuffix = 2;
    $(".invoice_items").delegate('#add-row', 'click', function () {

        var lastRow = $("tr.lastrow");
        var cloned = $("tr.default").clone().removeAttr('class');

        cloned.find('td#total_item_1').each(function() {
            $(this).attr('id', 'total_item_'+2);
        });

        cloned.find('input, select').each(function() {
            var id = $(this).attr('id'),
            name = $(this).attr('name');

            id = id.substring(0, id.length-1) + newIDSuffix;
            $(this).attr('id', id);
         });

        cloned.insertBefore(lastRow).find('input:text').val('');
        newIDSuffix++;
    });

        // update the plug-in version
        $("#idPluginVersion").text($.Calculation.version);

        // bind the recalc function to the quantity fields
        $("input").bind("keyup", recalc);
        // run the calculation function now
        recalc();

        $("input").bind("keyup", recalc);
        // run the calculation function now
        recalc();

这是我到目前为止所做的。http://jsfiddle.net/aliharis/VXZe8/

问题是一旦我动态添加一行,当我输入值时,它不会更新金额列和总计。但是如果我为动态添加的行输入值并返回第一行并输入值,它会进行包括动态添加字段的计算。

我无法弄清楚出了什么问题。

4

1 回答 1

0

添加行:

cloned.bind("keyup", recalc);

在这一行之后:

cloned.insertBefore(lastRow).find('input:text').val('');

将点击事件绑定到新元素。

.. 或者在这里使用 .on() 而不是 bind :

$("input").on("keyup", recalc);
于 2012-12-09T11:39:18.543 回答