一旦 onclick 干扰撤消按钮

问题描述 投票:0回答:1

我正在制作一个井字游戏,我想确保单个方块只能单击一次,我找到了一种通过使用 null 修饰符来做到这一点的方法,但这意味着如果撤消移动,则 null 仍然存在,并且方块变得无法播放。我想要一种方法来防止一个方块被多次播放,但如果使用撤消按钮,它会再次播放

目前为了防止一个方块被多次播放,我正在使用:

onclick="myFunction(); this.onclick=null;"

这确实解决了我最初的问题,即防止每个方格超过一次移动,但这意味着当撤消移动时,该方格仍然无法播放,因为 onclick 仍然存在

null

javascript html
1个回答
0
投票

该函数应该更新元素以指示它已被播放。然后该函数可以在再次播放之前检查这一点。

您可以使用

dataset
属性来获取与元素关联的特定于应用程序的数据。

document.getElementById("cell").addEventListener("click", function() {
  if (this.dataset.played == 'true') {
    console.log("Already played");
  } else {
    console.log("Playing the space");
    this.dataset.played = 'true';
  }
});

document.getElementById("undo").addEventListener("click", function() {
  document.getElementById("cell").dataset.played = 'false';
});
<button id="cell">Click me</button>
<button id="undo">Undo</button>

© www.soinside.com 2019 - 2024. All rights reserved.