在JQuery函数之间调用变量

时间:2014-02-04 05:09:23

标签: javascript jquery

我是JS的新手,试图建立一个基于在两个玩家之间来回切换一组牌的游戏。

一个是用于在两个玩家之间切换转弯的功能。另一个更改了瓷砖的颜色,使用转向变量来确定切换到哪种颜色。

我认为两者都不起作用。

小提琴:http://jsfiddle.net/f5mEY/3

var currentPlayer;
var playerOne;
var playerTwo;
var turnCounter = 0;

//this function is intended to iterate between the two players when a player completes their turn by hitting submit
$(document).ready(function() {
    $('#submit').click(function() {
        turnCounter += 1;
        if (turnCounter%2 === 0) {
            currentPlayer = playerOne;
        }
        else {
            currentPlayer = playerTwo;
        }
    });
});

//and this should turn the unplayed tiles to the correct player's color when they are clicked
$(document).ready(function() {
    $('.unplayedTile').click(function() {
        if (currentPlayer === playerOne) {
            $(this).toggleClass('unplayedTile playerOneTile');
        }
        else {
            $(this).toggleClass('unplayedTile playerTwoTile');
        }
    });
});

非常感谢您的任何帮助!

3 个答案:

答案 0 :(得分:1)

您需要使用可以比较的内容发起playerOneplayerTwo。目前,playerOneplayerTwoundefined,这使currentPlayer === playerOne始终为真

答案 1 :(得分:0)

在您的jsFiddle中,变量playerOneplayerTwo永远不会分配任何内容,因此它们都是undefined。如果它们具有相同的值,那么您无法在if语句中区分它们。

我不确切地知道你打算如何使用这些变量,但是如果你只是为它们分配一些不同的初始值,那么你对谁是当前玩家的比较应该开始工作。

var playerOne = 1;
var playerTwo = 2;
var currentPlayer = playerOne;

P.S。如果您正在尝试实际使用jsFiddle,则必须在左侧面板中选择jQuery lib,以便jQuery可用。

答案 2 :(得分:0)

问题是你没有为播放器常量指定任何值。

var currentPlayer = 1;
var playerOne = 1;
var playerTwo = 2;
var turnCounter = 0;

演示:Fiddle

此处设置初始值,以便currentPlayer成为playerOne

注意:同样在小提琴中没有包含jQuery