2016-09-25 89 views
0

我有一个Tic Tac Toe游戏,我想停止播放器“覆盖”已经拍摄的单元格。 Here's这个游戏。在点击后禁用div

我尝试使用这样的:

function stopClick() { 
    if (document.getElementsByClassName("pos").innerHTML !== "") { 
     $(this).disabled = "disabled"; 
    } 
} 

以及其他类似的功能,但没有大量的工作。有任何想法吗?谢谢!

+0

你有jquery,但使用了'getElementsByClassName()'?还有'$(this).disabled'是不对的。 'this.disabled'或'$(this).attr(“disabled”,true)' – Mohammad

+0

嗯,是的,我需要停止让他们j them。 –

+0

您能否将日志添加到流程的不同部分?如在函数顶部的一个,以确保它被调用,在'if'语句中的一个以确保它进入那里。这将帮助你缩小正在发生的事情。 – Whothehellisthat

回答

0

我编辑你的游戏,一个工作版本可以在这里找到: https://jsfiddle.net/f1apoya1/7/

基本上添加一个类:

.already-played { 
    pointer-events: none; 
} 

和你updateButtons功能:

function updateButtons() { 
    for (var i = 0; i < 3; i++) { 
     for (var j = 0; j < 3; j++) { 
      $("#c" + i + "" + j).text(board[i][j] == false ? "x" : board[i][j] == true ? "o" : ""); 
      if (board[i][j]) { 
       $("#c" + i + "" + j).addClass('already-played'); 
      } 
     } 
    } 
} 
+1

完美的是,我添加了'$(this).addClass('already-played');'myMove部分禁用放置x的位置。 –

+0

太棒了。 (: –

0

使用此

$(this).css('pointer-events', 'none');