JavaScript-daky önümleriň hasap edijisindeki umumy summasy
Indi bolsa, tablisanyň aşagynda satyň alnadylyşynyň umumy summasy çykaryljak etmeli. Bu ýerde aýratynlyklar bar.
Ýagdaýy üýtgetsek, şu düşünmek bolar, summa diňe täze satyň alnadylyşy goşulanda däl, eýsem pozulanda we üýtgedilende hem ýerine ýetirilmeli.
Men bu ýagdaýda bir funksiýa ýasamagy
teklip ederdim, ony recountTotal
diýip atlandyralyň, bu funksiýa umumy
summany doly gaýtadan hasaplar.
Ýagny, ähli satyň alnadylyşlaryň üstünden
aýlanýar we olaryň cost sütünindäki
mazmuny jemleýär.
Beýle bir funksiýa bolsa, biz ony umumy summanyň üýtgemegi öz içine alýan islendik ýerde çagyryp bileris. Elbetde, her gezek umumy summany hasaplamak birneme optimal däl. Emma biz kodyň ýönekeýleşdirilmegini alarys.
Täze satyň alnadylyşy döredilende göz öňünde tutulan funksiýany ulanalyň:
add.addEventListener('click', function() {
let tr = document.createElement('tr');
createCell(tr, name.value, 'name');
createCell(tr, price.value, 'price');
createCell(tr, amount.value, 'amount');
createCell(tr, price.value * amount.value, 'cost');
createCell(tr, 'pozmak', 'remove');
table.appendChild(tr);
recountTotal(); // umumy summany gaýtadan hasaplaýarys
});
Şu ýerde beýan edilen funksiýanyň çalşymy:
function recountTotal() {
let costs = table.querySelectorAll('.cost');
if (costs) {
// jemi tapýarys we ony #total-e ýazýarys
}
}
Men tarapyndan beýan edilen recountTotal funksiýasyny amala aşyryň.