⊗jsPrPCPE 28 of 62 menu

Bearbeitung von Einkäufen im Produktrechner

Lassen Sie uns nun die Bearbeitung von Zellen implementieren. Laut Bedingung können nur die ersten 3 Zellen bearbeitet werden.

Hier sind sie:

createCell(tr, name.value, 'name'); createCell(tr, price.value, 'price'); createCell(tr, amount.value, 'amount');

Offensichtlich wird der Code für die Bearbeitung für jede Zelle gleich sein: Bei einem Doppelklick soll anstelle des Zellentextes ein Input erscheinen, und beim Drücken von Enter im Input soll sein Inhalt zum neuen Text der Zelle werden.

Ich schlage vor, eine Funktion zu erstellen, die als Parameter eine Tabellenzelle annimmt und an sie die Bearbeitungsmöglichkeit bindet:

function allowEdit(td) { td.addEventListener('dblclick', function() { }); }

Dann können wir unsere Funktion wie folgt anwenden:

allowEdit(createCell(tr, name.value, 'name')); allowEdit(createCell(tr, price.value, 'price')); allowEdit(createCell(tr, amount.value, 'amount'));

Ein aufmerksamer Leser könnte bemerken, dass nicht alle Zellen gleich sind: Denn bei einer Änderung der Zelle mit dem Preis oder der Zelle mit der Menge sollte sich die Einkaufskosten in der Spalte cost ändern, und auch eine Neuberechnung des Gesamtbetrags durchgeführt werden.

Diese Nuance lassen wir als nächste Teilaufgabe zur Lösung in der nächsten Lektion. Zuerst machen wir einfach die Bearbeitungsmöglichkeit für unsere drei Zellen, ohne Neuberechnung.

Implementieren Sie die von mir beschriebene Bearbeitung der Zellen.

azbydeenesfrkakkptruuz