次の onclick は、前のクリックのちょうど 2 倍の回数発生します。つまり、最初にクリックすると、意図したとおりに機能し、1 回だけ起動します。しかし、(同じ行または他の行で)もう一度クリックすると、2回起動します。3 回クリックすると、8 回、次に 16 回、次に 32 回起動します。どうしたの?
calcTotals: function (table){
var totals=[];
$(table).find('tbody').children('tr').each(function(r,row){
$(row).on('click',function(e){
$(this).toggleClass('selectedForTotal');
$(table).find('tbody').children('tr:last').remove();
dialog.calcTotals(table);
e.stopPropagation();
return false;
})
if($(row).hasClass('selectedForTotal')){
$(this).children('td').each(function(c,cell){
if($(cell).hasClass('realNumber')){
cell.style.textAlign='right';
cell=$(cell).html().replace(/,/g,'').replace('(','-').replace(')','');
if (!totals[c]) totals[c]=0;
totals[c]+=parseFloat(cell);
$(cell).val(formatNumber(cell,2,false,true,true));
}else {cell.style.textAlign='left';}
})
}
})
var newRow=$('<tr>').appendTo($(table).find('tbody'))
.attr({'id':'totals','class':'highlightRow','tabIndex':'1'})
.on('click',function(i,item){
$(this).toggleClass('highlightRow');
}).css('cursor','pointer');
console.log('total : '+totals);
$(totals).each(function(i,item){
$('<td>').html(item? formatNumber(totals[i],2,false,true,true):'').appendTo(newRow);
})
$(newRow).focus();
}