Выбор мест
Теперь посетитель выбирает места: нажатие на свободное место выбирает его, а повторное нажатие отменяет выбор. Под местами страница сообщает, сколько мест выбрано и сколько они стоят вместе.
Храните выбранные места в массиве selectedSeats, как избранное в мини-проекте «Киновечер»: includes() подскажет, выбрано ли место, push() добавит его, а filter() создаст массив без него. После каждого изменения рисуйте места заново с помощью showSeats(), которая даёт выбранным местам класс selected. Обработчик нажатия каждого места вешается на его кнопку в showSeats(), создаётся внутри циклов и потому знает своё место. Проданные места отключены, поэтому нажатие на них ничего не делает.
Цена. Цена одного билета лежит в свойстве price сеанса, поэтому сумма — это selectedSeats.length * chosenShowtime.price. Показывайте её в абзаце с id summary под местами каждый раз, когда showSeats() их рисует, например Мест: 2, итого: 900 ₽. Знак рубля стоит после числа, поэтому в шаблонной строке его просто пишут после ${…}: `${total} ₽` даёт 900 ₽.
Другой сеанс. Места, выбранные на пятницу, ничего не значат в субботу. Когда посетитель выбирает сеанс, выбор начинается заново, с пустого.
Типичные ошибки:
- Создать
selectedSeatsчерезconst.filter()создаёт новый массив, а попытка записать его в константу заканчивается ошибкойTypeError: Assignment to constant variable.
Задание
- 1
Нажатие на свободное место выбирает его, а повторное нажатие отменяет выбор. У выбранных мест есть класс
selected. Вstyle.cssпридайте им собственный вид, например янтарный фон. - 2
Под местами добавьте абзац с id
summary. Каждый раз, когда места рисуются, показывайте в нём, сколько их выбрано и сколько они стоят вместе:Мест: 2, итого: 900 ₽. - 3
Когда выбран сеанс, начинайте без выбранных мест.