Почему инкремент постоянно увеличивается?
Сейчас изучаю Javascipt, и хотел добавить счетчик вопросов. Хотел просто добавить переменную, которая при правильном ответе увеличиваласт на 1 (++), но при использовании с каждым выполнением инкремента он все больше растет (добавляет +1, потом +2, далее +3 и так далее).
Прикладываю ссылку на файлы (math_game) для полной картины, буду рад любой помощи.
https://github.com/Dant3lion/JS_lab
Дополнительно:
Не нужно ссылки на файл. Нужно выкладывать код сюда.
Не забывать воспользовать кнопкой </> в местном редакторе для правильного оформления.
Если кода много, или лучше будет посмотреть его в действии, то воспользоваться песочницей https://codepen.io, https://jsfiddle.net
С каждым вызовом questionGenerator на кнопку submitBtn навешиваются все новые и новые обработчики. Нужно либо навесить обработчик один раз, либо очищать предыдущие обработчики. Учитывая, что испобльзуемые переменные глобальные - вроде бы можно смело вынести навешивание обработчика из функции questionGenerator.
И да, я смотрел только один файл, ибо очень неудобно. Лучше выкладывать исходники на github или в codepen
- Здравствуйте, спасибо за ответ! Приму ваш совет к сведению, очень помогли)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Проблема с постоянным увеличением инкремента может возникать из-за неправильного использования оператора инкремента в вашем коде.
Оператор инкремента (++), если используется после переменной (например, $i++), увеличивает значение переменной после выполнения текущего выражения. Если же оператор инкремента используется перед переменной (++$i), то значение переменной увеличивается перед выполнением текущего выражения.
Вот примеры использования обоих вариантов:
$i = 0; echo $i++; // выведет 0, затем увеличит $i на 1 echo ++$i; // увеличит $i на 1, затем выведет 2
Если в вашем коде инкремент постоянно увеличивается, возможно, вы случайно используете двойной оператор инкремента, например:
$i = 0; echo $i++; // выведет 0, затем увеличит $i на 1 echo $i++; // выведет 1, затем увеличит $i на 1
В этом случае $i будет увеличиваться каждый раз на 1, потому что каждый раз вы вызываете оператор инкремента после переменной. Чтобы избежать этой проблемы, убедитесь, что вы используете оператор инкремента в нужном месте и в нужное время в вашем коде.