我对jQuery很新,下面的代码是我发现的两个不同代码的拼贴,以实现我的目标
我有一个带有图像的表,单击它时会删除一个表行,这是下面代码的第一部分。
脚本的第二部分找到所有表行的总和
我正在尝试这样做,以便当您删除行时,总和也会相应地更改。因此,当您删除表格行时,该表格行中的金额将从总计中减去。我需要根据您删除的行更改总和
删除表格行的jQuery部分
$(document).ready(function(){
$('table#FeatureMatrix td a.delete').click(function()
{
{
var id = $(this).parent().parent().attr('id');
var data = 'id=' + id ;
var parent = $(this).parent().parent();
parent.fadeOut('slow', function()
{$(this).remove();});
return false;
}
});
计算所有表行总和的jQuery的一部分
$(document).ready(function() {
//this calculates values automatically
calculateSum();
$(".txt").live("keydown keyup", function() {
calculateSum();
});
});
function calculateSum() {
var sum = 0;
//iterate through each textboxes and add the values
$(".txt").each(function() {
//add only if the value is number
if (!isNaN(this.value) && this.value.length != 0) {
sum += parseFloat(this.value);
}
else if (this.value.length != 0){
}
});
$("#sum").html(sum.toFixed(2));
}
如果有人想在网上看到示例页面,这是链接http://webiceberg.net/Prices.php,如果您需要有关代码的更多详细信息,还可以查看页面的来源。
答案 0 :(得分:1)
删除行时,您只需调用calculateSum()(同样整理一下代码!):
$('table#FeatureMatrix td a.delete').click(function() {
var id = $(this).parent().parent().attr('id');
var data = 'id=' + id ;
var parent = $(this).parent().parent();
parent.fadeOut('slow', function() {
$(this).remove();
calculateSum();
});
return false;
});
请注意,它必须在回调内的$(this).remove()之后完成,否则你会在实际删除行之前调用calculate。
如果您担心它直接调用calculateSum
然后触发自定义事件并侦听它然后重新计算:
$('table#FeatureMatrix td a.delete').click(function() {
var id = $(this).parent().parent().attr('id');
var data = 'id=' + id ;
var parent = $(this).parent().parent();
parent.fadeOut('slow', function() {
$(this).remove();
$.event.trigger("rowDeleted"); // fire custom event
});
return false;
});
然后听听这个事件:
$('#sum').bind('rowDeleted', function() { // listen for custom event
calculateSum();
});
答案 1 :(得分:1)
尝试以下方法:
$("table#FeatureMatrix").bind("DOMSubtreeModified", function() {
calculateSum();
});
这将在每次修改表时重新计算总和(它也适用于添加的行)