Как изменить переменную с помощью оператора if - PullRequest
0 голосов
/ 13 мая 2018

Итак, я пытаюсь установить сложность в игре, которую создаю на JavaScript. В жестком режиме таймер короче. Я попытался сократить оставшееся время с помощью оператора if, но это не меняет таймер в игре.

<input type="checkbox" id="cb2" value="yes"> Hard

<script>
var timeRemain = 10;

if (document.getElementById("cb2").checked){
    timeRemain == 5;
} else {
    timeRemain == 10;
}
function countdown() {
    var timerId = setTimeout(countdown, 1000);
    if (timeRemain == 0) {
        clearTimeout(timerId);
    } else {
        timeRemain--;   
        document.getElementById("timer").innerHTML = timeRemain + ' seconds left!';
    }
}
</script>

Я все еще очень плохо знаком с JavaScript, поэтому я понимаю, что, возможно, я делаю это совершенно неправильно.

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

код:

var timeRemain = 10;

if (document.getElementById("cb2").checked)
    timeRemain = 5;
 else
    timeRemain = 10;

countdown = () => {
    var timerId = setTimeout(countdown, 1000);
    if (timeRemain == 0) 
        clearTimeout(timerId);
     else {
        timeRemain--;   
        document.getElementById("timer").innerHTML = `${timeRemain} seconds left!`;
    }
}
<input type="checkbox" id="cb2" value="yes"> Hard

Правки:

  • Вы использовали timeRemain == 5 и то же самое для timeRemain == 10 изменилось
  • Также немного изменены объявления функций кода (теперь используется функция стрелки)

Материалы:


Примечание:

  • Вы не вызываете функцию обратного отсчета
  • Оставшееся время вообще не инициализируется

0 голосов
/ 13 мая 2018

Я почти уверен, что это должно быть timeRemain = 5, а не timeRemain == 5, так как одиночный = означает присваиваемое значение, а два или три для сравнения.

if (document.getElementById("cb2").checked){
    timeRemain = 5;
} else {
    timeRemain = 10;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...