Javascript 为什么不是';我的jQuery if/else语句是否正常工作?
为了复习我的jQuery,我正在尝试制作一个功能性的tic-tac-toe游戏。我很早就遇到了一个问题 这是一个JSFIDLE(您可能需要更改宽度以获得正确的电路板布局): 以下是我的jQuery代码:Javascript 为什么不是';我的jQuery if/else语句是否正常工作?,javascript,Javascript,为了复习我的jQuery,我正在尝试制作一个功能性的tic-tac-toe游戏。我很早就遇到了一个问题 这是一个JSFIDLE(您可能需要更改宽度以获得正确的电路板布局): 以下是我的jQuery代码: $(document).ready(function () { var board = $('.board'); subtitle = $('.subtitle'); gamespace = $('.gamespace'); a1 = $('.a1');
$(document).ready(function () {
var board = $('.board');
subtitle = $('.subtitle');
gamespace = $('.gamespace');
a1 = $('.a1');
a2 = $('.a2');
a3 = $('.a3');
b1 = $('.b1');
b2 = $('.b2');
b3 = $('.b3');
c1 = $('.c1');
c2 = $('.c2');
c3 = $('.c3');
piece = $('.piece');
pieceX = $('.pieceX');
pieceO = $('.pieceO');
player1select = true;
player2select = false;
player1piece = "";
player2piece = "";
gameOver = true;
if (gameOver == true) {
$(board).css('display', 'none');
$(pieceX).click(function () {
player1piece = "x";
player2piece = "o";
$(pieceX).css('display', 'none');
$(pieceO).css('display', 'none');
subtitle.html('Player 1 = X | Player 2 = O');
$(board).css('display', 'inline');
})
$(pieceO).click(function () {
player1piece = "o";
player2piece = "x";
$(pieceX).css('display', 'none');
$(pieceO).css('display', 'none');
subtitle.html('Player 1 = O | Player 2 = X');
$(board).css('display', 'inline');
})
if (player1piece.length > 0 && player2piece.length > 0) {
gameOver = false;
}
} else {
$(gamespace).hover(
function () {
$(this).css('background-color', 'tomato');
}, function () {
$(this).css('background-color', 'white');
});
}
});
基本上,我的问题是,我希望gameOver变量为false,直到玩家一选择X或O。选择后,棋子消失,棋盘出现,gameOver设置为false,游戏开始。然而,检查gameOver是真是假的if/else语句似乎无法正常工作。如果它能工作,我就能在每个空间上悬停,它就会变成番茄
有人能解释为什么它不是那样工作的吗
谢谢。这里有几个问题,上面的评论中提到了其中一些问题。最有问题的可能是在某些事件中需要调用
if
语句。它可能应该在您定义的单击函数中 你的JSFIDLE不工作。您没有添加jQuery库引用。您正在将gameOver
定义为true
,然后立即检查它是否为true。没什么意义,嗯?此外,除第一个变量外,每个变量都在全局命名空间中初始化。这很糟糕。另外,你在if条件中将它设置为false,但从不重新调用你的函数。用jQuery和TidyUp.Hm更新Fiddle,真的吗?JSFIDLE为我工作。那么我该如何重新调用该函数呢?谢谢,我将对此进行修补。另外,还将研究如何使用var
在本地而不是全局定义变量。进展!如果您需要帮助,请删除此问题并提出新的、更具体的问题,而不是在此处的评论中进行讨论。