JQuery停止点击按钮

问题描述:

我正在尝试构建一种扫雷游戏,并且我需要一些关于游戏结束的帮助。我使用JQuery将游戏的表格变成了函数生成的表格。我需要的是当游戏结束时,不允许用户点击表格中的任何单元格。到目前为止,这是我的尝试:JQuery停止点击按钮

if(gameField[rand][col]==1){ 
    $(button).text("X"); 
    checkForBombs(); 
    var endGame = confirm("You lost. Do you want to play again?"); 
     if(endGame === true){ 
      window.location.reload(); 
     } 
     if(endGame === false){ 
      $('#tableboard').click(function(event){ 
       event.stopPropagation(); 
      }); 
     } 
} 

如果达到最后阶段,然后根据用户输入它开始一个新游戏或没有它本质检查。当用户按下取消时,该表格不应再接受来自用户的任何输入。

有关如何实现这一点的任何想法将不胜感激。我不需要确切的代码,但是无论是指导还是使按钮处于非活动状态的适当功能,仍然会在最终游戏中显示信息。

+0

什么'$(按钮).attr( '禁用', '禁用');''如果残局=== FALSE'并添加'event.preventDefault();'在'#tableboard'单击处理程序? – D4V1D

+0

谢谢。这使它工作。 – Scombine

+0

好的,请考虑接受[我的回答](http://stackoverflow.com/a/31670866/2788131)如果它解决了你的问题然后。 – D4V1D

你可以简单地禁用按钮:

$('.your-button').prop('disabled', true); 
+0

谢谢你的回答。这只会禁用有炸弹的按钮,而不是桌子上的所有东西。我会记住这一点,但对于未来我将制作的迷你项目。 – Scombine

+0

Gotcha。我想我误解了你的问题。 – jlowgren

我会假设你已经绑定的事件更早的元素$('#tableboard')接受click事件。如果这是真的,只要解除绑定到终结点代码中的该元素的任何点击事件。

if(endGame === false){ 
    $('#tableboard').unbind('click'); 
} 
+0

我没有在HTML中添加单击事件。我有一个名为onclick的功能,并负责创建按钮。 – Scombine

+0

您可以发布该功能,以便我们可以看一看! –

+0

是的。以下是该功能的链接:http://jsbin.com/dadinoxeni/edit?js,console – Scombine

我会去的:

if(endGame === false) { 
    $('#tableboard').attr('disabled', 'disabled').on('click', function(e) { 
     e.preventDefault(); 
    }); 
} 

这里是使工作的最终代码:

if(endGame === false){ 
      $('#tableboard button').attr('disabled', 'disabled'); 
       event.preventDefault() 

     } 

谢谢D4V1D为理念。 基本上,如果用户取消新游戏,表中的每个按钮都被禁用,他可以查看游戏以及炸弹的位置。