Plätze auswählen
Jetzt wählt der Besucher seine Plätze aus: Ein Klick auf einen freien Platz wählt ihn aus, ein weiterer Klick hebt die Wahl wieder auf. Unter den Plätzen steht, wie viele gewählt sind und was sie zusammen kosten.
Halte die gewählten Plätze in einem Array, gewaehltePlaetze, genau wie die Favoriten im Checkpoint Filmabend: includes() sagt dir, ob ein Platz gewählt ist, push() fügt ihn hinzu, und filter() erzeugt ein Array ohne ihn. Zeichne die Plätze nach jeder Änderung mit zeigePlaetze() neu, die den gewählten die Klasse gewaehlt gibt. Der Klick-Handler jedes Platzes gehört auf seinen Button in zeigePlaetze(), erstellt innerhalb der Schleifen, damit er seinen Platz kennt. Die belegten Plätze sind deaktiviert, ein Klick darauf bewirkt also nichts.
Der Preis. Der Preis eines Tickets steht im preis der Vorstellung, also ist die Summe gewaehltePlaetze.length * gewaehlteVorstellung.preis. Zeige sie in einem Absatz mit der id zusammenfassung unter den Plätzen, jedes Mal wenn zeigePlaetze() sie zeichnet, zum Beispiel Plätze: 2, gesamt: 18 €. Alles, was in einem Template-Literal hinter ${…} steht, ist einfach Text: `${gesamt} €` ergibt 18 €.
Eine andere Vorstellung. Plätze, die für Freitag gewählt wurden, bedeuten am Samstag nichts. Wenn der Besucher eine Vorstellung wählt, beginnt die Auswahl von vorn, leer.
Typische Fehler:
gewaehltePlaetzemitconsterstellen.filter()erzeugt ein neues Array, und es in eine Konstante zu legen endet mitTypeError: Assignment to constant variable.
So schreibst du es:
Anweisungen
- 1
Ein Klick auf einen freien Platz wählt ihn aus, ein weiterer Klick hebt die Wahl auf. Gewählte Plätze haben die Klasse
gewaehlt. Gib ihnen instyle.cssein eigenes Aussehen, zum Beispiel den Bernstein-Hintergrund. - 2
Füge unter den Plätzen einen Absatz mit der id
zusammenfassunghinzu. Zeige darin jedes Mal, wenn die Plätze gezeichnet werden, wie viele gewählt sind und was sie zusammen kosten:Plätze: 2, gesamt: 18 €. - 3
Wenn eine Vorstellung gewählt wird, beginne ohne gewählte Plätze.