Toodete kalkulaatoris ostude muutmine
Rakendame nüüd lahtrite muutmist.
Tingimuse kohaselt saab muuta ainult esimesed
3 lahtrit.
Need on:
createCell(tr, name.value, 'name');
createCell(tr, price.value, 'price');
createCell(tr, amount.value, 'amount');
Ilmselgelt on muutmise kood
iga lahtri jaoks sama: topeltkliki
korral peaks lahtri teksti asemel ilmuma
input väli, ning Enter vajutamisel
inputis peaks selle sisust saama lahtri uus tekst.
Soovitan luua mõne funktsiooni, mis võtab parameetrina tabeli lahtri ja seob sellega muutmise võimaluse:
function allowEdit(td) {
td.addEventListener('dblclick', function() {
});
}
Siis saame oma funktsiooni rakendada järgmiselt:
allowEdit(createCell(tr, name.value, 'name'));
allowEdit(createCell(tr, price.value, 'price'));
allowEdit(createCell(tr, amount.value, 'amount'));
Tähelepanelik lugeja võib märgata,
et kõik lahtrid pole samad: sest hinna
või koguse lahtri muutmisel peaks
muutuma ostu maksumus veerus cost,
ning toimuma kogusumma ümberarvutamine.
Selle nüansi jätame järgmiseks alamülesandeks järgmises õppetükis lahendamiseks. Alustuseks teeme lihtsalt meie kolme lahtri muutmise võimaluse, ilma ümberarvutuseta.
Rakendage minu poolt kirjeldatud lahtrite muutmine.