2015-07-28 233 views
-1

我正在嘗試構建一種掃雷遊戲,並且我需要一些關於遊戲結束的幫助。我使用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

回答

0

你可以簡單地禁用按鈕:

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

謝謝你的回答。這隻會禁用有炸彈的按鈕,而不是桌子上的所有東西。我會記住這一點,但對於未來我將製作的迷你項目。 – Scombine

+0

Gotcha。我想我誤解了你的問題。 – jlowgren

0

我會假設你已經綁定的事件更早的元素$('#tableboard')接受click事件。如果這是真的,只要解除綁定到終結點代碼中的該元素的任何點擊事件。

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

我沒有在HTML中添加單擊事件。我有一個名爲onclick的功能,並負責創建按鈕。 – Scombine

+0

您可以發佈該功能,以便我們可以看一看! –

+0

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

0

我會去的:

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

這裏是使工作的最終代碼:

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

     } 

謝謝D4V1D爲理念。 基本上,如果用戶取消新遊戲,表中的每個按鈕都被禁用,他可以查看遊戲以及炸彈的位置。