为什么DOM仅在新事件(单击)之后更新?

时间:2018-10-23 00:37:03

标签: javascript dom event-listener

长时间潜伏者,第一次潜伏者! (建议多加赞赏)。
我正在构建一个Tic Tac Toe游戏,该游戏在浏览器中使用JavaScript在幕后进行播放。板上的每个空间都是一个按钮。 如果有人获胜,则应禁用所有按钮,页面应显示 赢家。

我的问题是,即使有人获胜,也需要再单击一次按钮,才能在页面上显示“游戏结束”消息。应该禁用按钮,因为已经达到了胜利的情况。为什么直到下一次“点击”事件才识别出该事件?以及如何在达到最终情况时确保游戏结束?

这是连接到游戏板上每个按钮的事件侦听器的代码。 (已减少)。

buttonX.addEventListener("click", function(){
      //The clicked buttons textContent should update to X or O (marker)
      //depending on which players turn it is.
      buttonX.textContent = getCurrentPlayer().marker;
      buttonX.disabled = true;
      turnNumber++;

      if (checkisWin()==true) {
        displayMessage("GAME OVER");
      }
      //if 9 turns have passed, and no one has won, its a tie
      if (turnNumber == 9 && checkisWin()==false) {
        displayMessage("No One Wins");
      }
});

function displayMessage(someMessage) {
  parentSelected = document.querySelector('#container');
  messageContent = document.createElement('h2');
  messageContent.textContent = someMessage;
  parentSelected.appendChild(messageContent);
}

0 个答案:

没有答案