У меня следующие инструкции:
Инструкция 1:
-Просто над функцией formatMoney создайте функцию стрелки getRating, которая должна принимать параметр звезды (звезда, на которую нажал пользователь).getRating должен возвращать значение атрибута скорости передачи данных своего звездного параметра в виде целого числа.
-Так как вызывается rateMeal для обработки события щелчка, ему будет предоставлен объект события в качестве параметра.Обновите функцию rateMeal и деструктурируйте ожидаемый параметр события до целевого свойства.
-Sill в rateMeal, чтобы получить числовое значение рейтинга, по которому щелкнули, вызовите getRating с целевым параметром rateMeal, затем назначьтезначение, возвращаемое в переменную рейтинга.
-rateMeal должен вызывать функцию calcTip.
-Просто перед вызовом функции convertTip реализуется функция оценки приема пищи.Как и на популярных веб-сайтах электронной коммерции, если пользователь оценил блюдо как 4 звезды (щелкнув только по 4-й звезде), все предшествующие звёздные элементы должны быть помечены как оцененные, присвоив им оцененный класс CSS.
-Подсказка: * Сначала получите все оценочные значения SPAN, затем удалите все предыдущие оценки, удалив оцененный класс, а затем добавьте .rated класс к звездам, числовое значение рейтинга которых меньше или равно значению для звезды, на которую нажали!
-Примечание. Пользователю разрешается предоставлять оценку только в том случае, если он сделал выбор блюд.Ваша функция rateMeal должна проверить это и выйти рано, если выбора еды не существует.Выбор осуществляется путем выбора опции еды (изображения), которая затем добавляет атрибут «выбранные данные» к его родительскому элементу на шаге 1 выше.RateMeal должен сначала проверить и продолжить, только если выбор существует.
const getRating = (star) => {
return parseInt(star.getAttribute('data-rate'));
}
const formatMoney = (figure) => {
return figure
}
const mealChoosen = ({ target }) => {
const items = document.querySelectorAll('.item').forEach((item) => {
item.removeAttribute('data-selected');
})
target.parentNode.setAttribute('data-selected');
calculateTip();
}
const rateMeal = ({ target }) => {
const rating = getRating(target);
for (i = 1; i <= 5; i++) {
const item = document.querySelector(`[data-rate='${i}']`);
item.classList.remove('rated');
}
for (i = 1; i <= rating; i++) {
const item = document.querySelector(`[data-rate='${i}']`);
item.classList.add('rated');
}
calculateTip();
}