迷你 "Score Keeper" 项目 - 有几个问题

Mini "Score Keeper" Project - Having a Few Issues

我正在开发一个简单的计分器应用程序,但有一些功能没有按预期运行。

https://codepen.io/Modestas/pen/LjPPVQ

这是我的部分代码:

if ( p1ScoreCount === inputScore.value) {
    p1Span.classList.add("green");
    gameOver = true;
    alert("Player 1 Wins!");
} 

else if ( p2ScoreCount === inputScore.value) {
    p2Span.classList.add("green");
    gameOver = true;
    alert("Player 2 Wins!");
}

if (gameOver === true) {
       p1Button.disabled = true;
       p2Button.disabled = true;
    }

1) 每当"P1Span"和"P2Span"等于输入字段的值时,游戏不会结束。我什至尝试使用双重比较运算符,但仍然没有。

2) 按下重置按钮只会将输入字段重置为默认值 5,但不会将分数重置为 0。

3) 由于某些原因,当通过单击箭头(快速)更改输入值时,会有很多滞后并且更改并不总是反映在 HTML。

如果有人对这些问题有任何意见,我将不胜感激。谢谢!

只需一些简单的更改

1) 我在点击事件中添加了这些验证 if(p1ScoreCount == inputScore.value) {...}

2)p1Span.innerHTML = 0; p2Span.innerHTML = 0;

3)这不一定是问题,是return事件的时间"change",可能是"click"事件是你要找的

const p1Span = document.getElementById("p1Span");
const p2Span = document.getElementById("p2Span");
const p1Button = document.getElementById("p1");
const p2Button = document.getElementById("p2");
const inputScore = document.getElementById("inputScore");
const playToSpan = document.getElementById("playToSpan");
const resetButton = document.getElementsByTagName("button")[2];
let gameOver = false;
let p1ScoreCount = 0;
let p2ScoreCount = 0;


// player 1/2 buttons add score to span when clicked.

p1Button.addEventListener("click", () => {
  p1ScoreCount++;
  p1Span.textContent = p1ScoreCount;
  if (p1ScoreCount == inputScore.value) {
    alert("Player 1 Win");
    p1Span.className += " green";
    p1Button.disabled = true;
    p2Button.disabled = true;
    //reset();
  }
});

p2Button.addEventListener("click", () => {
  p2ScoreCount++;
  p2Span.textContent = p2ScoreCount;
  if (p2ScoreCount == inputScore.value) {
    alert("Player 2 Win");
    p2Span.className += " green";
    p1Button.disabled = true;
    p2Button.disabled = true;
  }
});

// specify what you're playing to using text input

inputScore.addEventListener("click", () => {
  playToSpan.textContent = inputScore.value;
});

// reset button resets the game

resetButton.addEventListener("click", function() {
  reset();
});

function reset() {
  gameOver = false;
  p1ScoreCount = 0;
  p2ScoreCount = 0;
  p1Span.innerHTML = 0;
  p2Span.innerHTML = 0;
  inputScore.value = 5;
  p1Span.classList.remove("green");
  p2Span.classList.remove("green");
  p1Button.disabled = false;
  p2Button.disabled = false;
}
.green {
  color: green;
}
<div>
  <h1><span id="p1Span">0</span> to <span id="p2Span">0</span></h1>
  <h3>Playing to: <span id="playToSpan">5</span></h3>
  <input id="inputScore" type="number" value="5">
  <button id="p1">Player One</button>
  <button id="p2">Player Two</button>
  <button id="reset">Reset</button>
</div>