2014-12-06 178 views
-1

編寫一個基於瀏覽器的小型Cookie Clicker和暗室混合。JavaScript與ID混淆

黃金(玩家的分數)顯示在屏幕上。每次點擊一個按鈕時,黃金都會添加一個編號。到現在爲止還挺好。什麼不工作是檢查黃金價值是否大於100的邏輯。

我已經工作了很多次,並且無法弄清楚我做錯了什麼。這是一個語法錯誤,還是我缺少一些額外的代碼?

$(function() { 
    $('#success') 
    var gold = 0; 

    // clicked food button adds 3 gold 
    $('#food').click(function() { 

     gold+=3; 
     $('#gold').text(gold); 
    }); 

    // clicked wool button adds 4 gold 
    $('#wool').click(function() { 

     gold+=4; 
     $('#gold').text(gold); 
    }); 

    // clicked lumber button adds 7 gold 
    $('#lumber').click(function() { 

     gold+=7; 
     $('#gold').text(gold); 
    }); 

    // if gold > 99, put 
    //alert("You won! Play again?") 
    if (('#gold') > 99) { 
     var x = confirm("You won! Play again?"); 
     if (x == true) { 
      window.close(); 
     } 
     else { 
      window.close(); 
     } 
    } 
}); 
+4

look if(('#gold')> 99){line仔細。 – tanaydin 2014-12-06 19:09:09

+0

檢查黃金數量是否超過99的代碼 - 何時應該運行?事實上,它只運行一次,當「就緒」處理程序運行時。每當黃金數量發生變化時,您都需要進行檢查(並且正確地進行)。 – Pointy 2014-12-06 19:16:04

+0

我沒有考慮過運行時;感謝解決這個問題。我在這條線的結構上來回走動,但仍然無法決定什麼是合適的。我使用的是ID,所以我認爲用它的ID列出黃金是合適的。 – TheAcolyte 2014-12-06 20:43:21

回答

0

好,你要定義的功能,但不稱他們爲...試試像這樣...

$(function() { 
    // $('#success') // what does this line do ? 
    var gold = 0; 

    // clicked food button adds 3 gold 
    $('#food').click(function() { 

     gold+=3; 
     $('#gold').text(gold); 
     checkGold(); 
    }); 

    // clicked wool button adds 4 gold 
    $('#wool').click(function() { 

     gold+=4; 
     $('#gold').text(gold); 
     checkGold(); 
    }); 

    // clicked lumber button adds 7 gold 
    $('#lumber').click(function() { 

     gold+=7; 
     $('#gold').text(gold); 
     checkGold(); 
    }); 

    function checkGold() { 
     // if gold > 99, put 
     //alert("You won! Play again?") 
     if (parseInt($('#gold').text()) > 99) { 
      var x = confirm("You won! Play again?"); 
      if (x == true) { 
       window.close(); 
      } else { 
       window.close(); 
      } 
     } 
     return true; 
    } 
}); 
1

就應該更換

if (('#gold') > 99) {

符合

if(gold > 99)

我想這是=)