Javascript 如何使用jQuery访问属于函数内部另一个函数的对象的属性?
我正在使用jQuery开发Tic-Tac-Toe游戏。我几乎完成了,但却陷入了困境。如何将代码添加到Javascript 如何使用jQuery访问属于函数内部另一个函数的对象的属性?,javascript,jquery,Javascript,Jquery,我正在使用jQuery开发Tic-Tac-Toe游戏。我几乎完成了,但却陷入了困境。如何将代码添加到squareClicked函数的末尾以检查是否有赢家?如果有,我想将bgreen类仅分配给正方形(tds) $('table')。在('click',squareClicked)上; 函数(e){ var$sqr=$(e.target); var player=$('.current player').attr('id'); 如果(!$sqr.attr('class')){ $sqr.addCla
squareClicked
函数的末尾以检查是否有赢家?如果有,我想将bgreen
类仅分配给正方形(tds)
$('table')。在('click',squareClicked)上;
函数(e){
var$sqr=$(e.target);
var player=$('.current player').attr('id');
如果(!$sqr.attr('class')){
$sqr.addClass(player+'-marker');
switchPlayer();
}
}
函数getBoard(){
var board=[];
$('td')。每个(函数(){
board.push(this.className[0]);
});
返回板;
}
函数checkWin(){
var board=getBoard();
//可能赢集的数组
var winArray=[
[0, 1, 2], [3, 4, 5], [6, 7, 8],
[0, 3, 6], [1, 4, 7], [2, 5, 8],
[0, 4, 8], [2, 4, 6]];
var winInfo={
赢:错
};
//循环通过可能的赢集
对于(var i=0;i
我调用了checkWin()
在squareClicked
函数中,但它根本不运行。注意checkWin()返回一个具有3个属性的对象:win、play和winner;将结果分配给一个变量,然后检查胜利的真实性,以确定玩家是否刚刚获胜
function squareClicked(e) {
var $sqr = $(e.target);
var player = $('.current-player').attr('id');
if (!$sqr.attr('class')) {
$sqr.addClass(player + '-marker');
switchPlayer();
}
var winInfo = checkWin();
if (winInfo.win) {
console.log("You won!");
// do win stuff here
}
}
您能告诉我们您是如何调用checkWin()的吗?也许JSFIDLE会有所帮助。您所说的“它根本不运行”是什么意思。您是否收到任何错误消息?是否在全局对象上定义了checkWin()?谢谢。好的,那么想想checkWin的返回值是什么:一个属性为win、play和winner的对象;我假设在本文末尾,您想调用它并将其值赋给一个变量;然后检查win属性的真实性。
function squareClicked(e) {
var $sqr = $(e.target);
var player = $('.current-player').attr('id');
if (!$sqr.attr('class')) {
$sqr.addClass(player + '-marker');
switchPlayer();
}
var winInfo = checkWin();
if (winInfo.win) {
console.log("You won!");
// do win stuff here
}
}
function squareClicked(e) {
var $sqr = $(e.target);
var player = $('.current-player').attr('id');
if (!$sqr.attr('class')) {
$sqr.addClass(player + '-marker');
switchPlayer();
}
var result = checkWin();
if (result.win){
// do something here ...
}
}