Javascript 为什么不是';我的jQuery if/else语句是否正常工作?

Javascript 为什么不是';我的jQuery if/else语句是否正常工作?,javascript,Javascript,为了复习我的jQuery,我正在尝试制作一个功能性的tic-tac-toe游戏。我很早就遇到了一个问题 这是一个JSFIDLE(您可能需要更改宽度以获得正确的电路板布局): 以下是我的jQuery代码: $(document).ready(function () { var board = $('.board'); subtitle = $('.subtitle'); gamespace = $('.gamespace'); a1 = $('.a1');

为了复习我的jQuery,我正在尝试制作一个功能性的tic-tac-toe游戏。我很早就遇到了一个问题

这是一个JSFIDLE(您可能需要更改宽度以获得正确的电路板布局):

以下是我的jQuery代码:

$(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
在本地而不是全局定义变量。进展!如果您需要帮助,请删除此问题并提出新的、更具体的问题,而不是在此处的评论中进行讨论。