Javascript 为什么';这样不行吗?转弯';s值正在增加,但仍会触发相同的事件?
所以,我决定在JS上创建一个Tic-Tac-Toe游戏,但是当我尝试决定X或O的回合时,它没有改变。我试着使用模逻辑,通过一个变量递增,这样当它是偶数或奇数时,就可以改变圈数。但是下面的代码似乎不起作用。有人能帮我找到这里的错误吗Javascript 为什么';这样不行吗?转弯';s值正在增加,但仍会触发相同的事件?,javascript,tic-tac-toe,Javascript,Tic Tac Toe,所以,我决定在JS上创建一个Tic-Tac-Toe游戏,但是当我尝试决定X或O的回合时,它没有改变。我试着使用模逻辑,通过一个变量递增,这样当它是偶数或奇数时,就可以改变圈数。但是下面的代码似乎不起作用。有人能帮我找到这里的错误吗 const secs = document.querySelectorAll('.sec'); let turn = 1; if (turn%2===0){ for (sec of secs){ sec.removeEventListener('
const secs = document.querySelectorAll('.sec');
let turn = 1;
if (turn%2===0){
for (sec of secs){
sec.removeEventListener('click', oturn);
sec.addEventListener('click', xturn);
} }
else if (turn%2!= 0) {
for (sec of secs){
sec.removeEventListener('click', xturn);
sec.addEventListener('click', oturn);
}}
function xturn (e){
e.target.innerHTML = "X";
++turn
console.log(turn);
}
function oturn (e){
e.target.innerHTML = "O";
++turn
console.log(turn);
}
您必须在声明函数后调用它们 只需在末尾添加这些行 xtrn(e);
奥图恩(e) 看起来,当页面加载时,您只需检查一次状态并附加/分离事件。如果不是这样,我们需要更多的背景。在任何情况下,为任务切换事件都有点过分,根据状态更改内容的值要简单得多。我该怎么做呢?类似于。最好在JS中创建游戏的“模型”,然后根据model.tysm的状态更新视图!顺便说一句,你能给我解释一下第7行(js)的逻辑吗,当前=+!现在的主要是运算符一元
+
转换布尔一元
返回一个数字,即该行将current
的值在0和1之间切换。这些函数附加到click events,并在访问者单击某个元素时调用。