Uncaught ReferenceError: переменная не определена? (без участия jQuery) - PullRequest
0 голосов
/ 19 февраля 2020

это мой первый вопрос по stackoverflow.

Я изучаю javascript и решил начать проект. Я делаю табло, чтобы следить за счетом во время настольного тенниса. Мне удалось сделать эту работу, и я решил добавить некоторые функции, такие как история матчей и показать, какой игрок должен служить. Тем не менее, я застрял с ReferenceError. В большинстве других вопросов об этом люди просто забыли добавить переменную, или она имела какое-то отношение к jquery. Не думаю, что это моя проблема.

В настольном теннисе игрок с подачей меняется каждые 2 очка. Я решил добавить ScorePlayer1 и ScorePlayer2, чтобы составить итоговую оценку. Когда это делится на 2, я могу проверить, является ли это целое число, и если это так, игрок с подачей меняется. Однако, что бы я ни пытался, переменная totalScore не определена.

Сначала я выучил HTML / CSS на w3schools.com, а затем использовал его для изучения javascript. Я вставил код в несколько проверок синтаксиса, но не получил ошибок.

Кнопка для выбора игрока на подачу. Затем я хочу передать право служить противоположному игроку после того, как набрано 2 очка. Я попробовал это с функцией changeServePlayer. Однако, когда я пытаюсь это сделать в Chrome и набрать в консоли: totalScore, он возвращает Uncaught ReferenceError. Почему это происходит или есть лучший способ достичь цели?

Вот код, который я использовал:

var currentScorePlayerOne = 0;
var currentScorePlayerTwo = 0;
var currentServePlayer;
var totalScore;

window.addEventListener("keyup", checkKeyPress);

function checkKeyPress(key) {
  if (key.keyCode == "90" && currentScorePlayerOne != 0) { //Z
    document.getElementById('scorePlayerOne').innerHTML = --currentScorePlayerOne;
    changeServePlayer();
    changeServeIcon();
  }
  if (key.keyCode == "88") { //X
    document.getElementById('scorePlayerOne').innerHTML = ++currentScorePlayerOne;
    changeServePlayer();
    changeServeIcon();
  }
  if (key.keyCode == "78" && currentScorePlayerTwo != 0) { //N
    document.getElementById('scorePlayerTwo').innerHTML = --currentScorePlayerTwo;
    changeServePlayer();
    changeServeIcon();
  }
  if (key.keyCode == "77") { //M
    document.getElementById('scorePlayerTwo').innerHTML = ++currentScorePlayerTwo;
    changeServePlayer();
    changeServeIcon();
  }
  updateSet();
}

function updateSet() {
  if (currentScorePlayerOne > 10 && currentScorePlayerOne > currentScorePlayerTwo + 1) {
    resetScores();
  }
  if (currentScorePlayerTwo > 10 && currentScorePlayerTwo > currentScorePlayerOne + 1) {
    resetScores();
  }
}


function resetScores() {
  currentScorePlayerOne = 0;
  currentScorePlayerTwo = 0;
  document.getElementById('scorePlayerOne').innerHTML = currentScorePlayerOne;
  document.getElementById('scorePlayerTwo').innerHTML = currentScorePlayerTwo;
}

function changeServePlayer() {
  totalScore = currentScorePlayerOne + currentScorePlayerTwo;
  Number.isInteger(totalScore / 2);
  if (Number.isInteger == true && totalScore != 0 && currentServePlayer == 1) {
    currentServePlayer = 2;
  }
  if (Number.isInteger == true && totalScore != 0 && currentServePlayer == 2) {
    currentServePlayer = 1;
  }
}

function changeServeIcon() {
  if (currentServePlayer == 1) {
    document.getElementById('serveP1').style.opacity = "1";
    document.getElementById('serveP2').style.opacity = "0.2";
  } else {
    document.getElementById('serveP2').style.opacity = "1";
    document.getElementById('serveP1').style.opacity = "0.2";
  }
}
<!DOCTYPE html>
<html>

<head>
  <script src="Scoreboard1javascript.js"></script>
</head>

<body>
  <button type="button" onclick="chooseServingPlayer()">
			Serve
		</button>

  <script>
    var randomServeNumber;

    function chooseServingPlayer() {
      if (currentScorePlayerOne == 0 && currentScorePlayerTwo == 0) {
        document.getElementById('serveP1').style.opacity = "0.2";
        document.getElementById('serveP2').style.opacity = "0.2";
        randomServeNumber = Math.floor(Math.random() * 10);
        if (randomServeNumber > 5) {
          currentServePlayer = 1;
          changeServeIcon();
        } else {
          currentServePlayer = 2;
          changeServeIcon();
        }
      }
    }

    function changeServeIcon() {
      if (currentServePlayer == 1) {
        document.getElementById('serveP1').style.opacity = "1";
        document.getElementById('serveP2').style.opacity = "0.2";
      } else {
        document.getElementById('serveP2').style.opacity = "1";
        document.getElementById('serveP1').style.opacity = "0.2";
      }
    }
  </script>

  <nav>
    <img src="tafeltennisbat.png" alt="serve" style="width: 50px; height: 50px; opacity: 0.2" id="serveP1"> Score P1
  </nav>
  <nav>
    Score P2
    <img src="tafeltennisbat.png" alt="serve" style="width: 50px; height: 50px; opacity: 0.2" id="serveP2">
  </nav>
  <nav id="scorePlayerOne" style="font-size: 50px">
    0
  </nav>
  <nav id="scorePlayerTwo" style="font-size: 50px">
    0
  </nav>

</body>

</html>

1 Ответ

0 голосов
/ 20 февраля 2020

Я забыл проверить, на какой файл я ссылался в моем html скрипте. Я ссылался на старую версию javascript, в которой каждое изменение, сделанное мной в javascript, было бесполезным.

Иногда это может быть настолько глупо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...