在我的帐单结算网页应用程序中,我尝试使用jQuery计算客户端item
的{{1}}总计:
invoice
这适用于已保存所有项目的发票。
但是,在创建新发票时,会通过jQuery动态添加项目,并且上述功能不起作用。
我怎样才能让它与这些项目一起使用?
感谢您的帮助。
更新
这是创建新发票项目的链接:
$(function() {
// Add a new row of item fields
$('form.edit_invoice').on('click', '.add_fields', function(event) {
var regexp, time;
time = new Date().getTime();
regexp = new RegExp($(this).data('id'), 'g');
$(this).closest('tr').before($(this).data('fields').replace(regexp, time)); // Replace ID with a unique ID
calculateItemTotals();
event.preventDefault();
});
// Update item total when item price or quantity gets changed
$('input[id$="_price"], input[id$="_quantity"]').on('change', function() {
calculateItemTotals();
});
});
function calculateItemTotals() {
$('.item_fields').each(function() {
var price = $(this).find('input[id$="_price"]').val();
var quantity = $(this).find('input[id$="_quantity"]').val();
var total = parseFloat(price) * parseFloat(quantity);
$(this).find('.item_total').text(total);
});
}
答案 0 :(得分:2)
事实证明,动态创建的元素是标准的(多次询问)问题:对于动态创建的元素,您应该使用.on()的委托事件处理程序:
$('form.edit_invoice').on('change', 'input[id$="_price"], input[id$="_quantity"]', function()
{
calculateItemTotals();
});