2013-02-20 67 views
0

我有变量playersTurn它只是没有改变的价值可以有人告诉我为什么?我已经尝试使用警报来查找代码出错的地方我已经写了代码多种方式,为什么不会这个var更新?除了这个变量外,其他所有工作都应该如此。在这段代码中,变量实际上并没有改变,为什么?

<div class="square p1">1</div> 
    <div class="square p1">2</div> 
    <div class="square p1">3</div> 
    <div class="square p1">4</div> 
    <div class="square p1">5</div> 
    <div class="square">6</div> 
    <div class="square" style="background-color: #ff0000;">7</div> 
    <div class="square">8</div> 
    <div class="square p2">9</div> 
    <div class="square p2">10</div> 
    <div class="square p2">11</div> 
    <div class="square p2">12</div> 
    <div class="square p2">13</div> 
    <div class="square p1">14</div> 
    <div class="square p1">15</div> 
    <div class="square p1">16</div> 
    <div class="square p1">17</div> 
    <div class="square p1" style="background-color: #8b4513;">18</div> 
    <div class="square">19</div> 
    <div class="square" style="background-color: #ff0000;">20</div> 
    <div class="square">21</div> 
    <div class="square p2">22</div> 
    <div class="square p2" style="background-color: #8b4513;">23</div> 
    <div class="square p2">24</div> 
    <div class="square p2">25</div> 
    <div class="square p2">26</div> 
    <div class="square p1" style="background-color: #008000;">27</div> 
    <div class="square p1" style="background-color: #008000;">28</div> 
    <div class="square p1">29</div> 
    <div class="square p1">30</div> 
    <div class="square p1" style="background-color: #8b4513;">31</div> 
    <div class="square">32</div> 
    <div class="square" style="background-color: #ff0000;">33</div> 
    <div class="square">34</div> 
    <div class="square p2">35</div> 
    <div class="square p2" style="background-color: #8b4513;">36</div> 
    <div class="square p2">37</div> 
    <div class="square p2" style="background-color: #008000;">38</div> 
    <div class="square p2" style="background-color: #008000;">39</div> 
    <div class="square p1" style="background-color: #008000;">40</div> 
    <div class="square p1" style="background-color: #008000;">41</div> 
    <div class="square p1">42</div> 
    <div class="square p1">43</div> 
    <div class="square p1">44</div> 
    <div class="square">45</div> 
    <div class="square" style="background-color: #8b4513;">46</div> 
    <div class="square">47</div> 
    <div class="square p2">48</div> 
    <div class="square p2">49</div> 
    <div class="square p2">50</div> 
    <div class="square p2" style="background-color: #008000;">51</div> 
    <div class="square p2" style="background-color: #008000;">52</div> 
    <div class="square p1" style="background-color: #008000;">53</div> 
    <div class="square p1" style="background-color: #008000;">54</div> 
    <div class="square p1">55</div> 
    <div class="square p1" style="background-color: #8b4513;">56</div> 
    <div class="square p1">57</div> 
    <div class="square">58</div> 
    <div class="square" style="background-color: #ff0000;">59</div> 
    <div class="square">60</div> 
    <div class="square p2" style="background-color: #8b4513;">61</div> 
    <div class="square p2">62</div> 
    <div class="square p2">63</div> 
    <div class="square p2" style="background-color: #008000;">64</div> 
    <div class="square p2" style="background-color: #008000;">65</div> 
    <div class="square p1">66</div> 
    <div class="square p1">67</div> 
    <div class="square p1">68</div> 
    <div class="square p1" style="background-color: #8b4513;">69</div> 
    <div class="square p1">70</div> 
    <div class="square">71</div> 
    <div class="square" style="background-color: #ff0000;">72</div> 
    <div class="square">73</div> 
    <div class="square p2" style="background-color: #8b4513;">74</div> 
    <div class="square p2">75</div> 
    <div class="square p2">76</div> 
    <div class="square p2">77</div> 
    <div class="square p2">78</div> 
    <div class="square p1">79</div> 
    <div class="square p1">80</div> 
    <div class="square p1">81</div> 
    <div class="square p1">82</div> 
    <div class="square p1">83</div> 
    <div class="square">84</div> 
    <div class="square" style="background-color: #ff0000;">85</div> 
    <div class="square">86</div> 
    <div class="square p2">87</div> 
    <div class="square p2">88</div> 
    <div class="square p2">89</div> 
    <div class="square p2">90</div> 
    <div class="square p2">91</div> 

    <script type="text/javascript"> 
     var p1Setup = 9; 
     var p2Setup = 9; 
     var playersTurn = "p1"; 
     function update() { 
      if(playersTurn == "p1") { 
       p1PlaceUnits(); 
      } 
      if(playersTurn == "p2") { 
       p2PlaceUnits(); 
      } 
     } 
     function p1PlaceUnits() { 
      $(".p1").click(function() { 
       if(p1Setup > 0) { 
        if(!$(this).hasClass('unitPlaced-p1')) { 
         $(this).addClass("unitPlaced-p1"); 
         p1Setup--; 
         //alert("Player 2's turn."); 
         playersTurn = "p2"; 
         update(); 
        } 
       } 
      }); 
     } 
     function p2PlaceUnits() { 
      $(".p2").click(function() { 
       if(p2Setup > 0) { 
        if(!$(this).hasClass('unitPlaced-p2')) { 
         $(this).addClass("unitPlaced-p2"); 
         p2Setup--; 
         //alert("Player 1's turn."); 
         playersTurn = "p1"; 
         update(); 
        } 
       } 
      }); 
     } 
    </script> 

下面是该网站的链接,如果你想检查代码War Pit

+0

如果他们没有做任何事情你不需要'else'语句。另外,你的问题是什么?应该'playersTurn'切换? 'playersTurn'应该发生什么? – howderek 2013-02-20 18:49:40

+1

你的if语句不在任何事件中,它们何时被调用? – 2013-02-20 18:50:01

+0

是的,球员转身应该切换看每个功能我正在改变价值?也pedro我只是试图把它们放入一个函数来测试它现在 – 2013-02-20 18:52:41

回答

1

的代码只计算一次,所以当你测试变量playersTurn,它始终是真实的,在第一次。当你点击一个.p1.p2时,测试变量playersTurn的代码不再被评估

+0

好的,我将如何继续检查将代码放在这里的变量的值 while(setup == true){playersTurn === true ){ p1PlaceUnits(); document.write(p1Turn +“
”); document.write(p2Turn +“
”); } if(playersTurn === false){ p2PlaceUnits(); document.write(p1Turn +“
”); document.write(p2Turn +“
”); } } 在一个while循环,你可以看到,但它仍然无法正常工作。 – 2013-02-20 18:57:55

+0

你可以举一个例子来说明如何更新变量吗?我把它放在一个循环?或者是其他东西? – 2013-02-20 19:06:53

+0

用这个'while'代码永远不会碰到最后两个函数'p1PlaceUnits'和'p1PlaceUnits'。您可以创建一个更新功能。所以当你改变变量'playersTurn'时,你可以调用这个函数。 – 2013-02-20 19:08:39

0

我已经修改了你的JS以便高效!超过9000!!!!!!

var setup = { 
    p1: 9, 
    p2: 9 
} 
var playersTurn = "p1"; 

$('.square').click(function() { 
    if (setup[playersTurn] > 0 && !$(this).hasClass('unitPlaced-' + playersTurn) && $(this).hasClass(playersTurn)) { 
     $(this).addClass('unitPlaced-' + playersTurn); 
     setup[playersTurn]--; 
     (playersTurn == "p1") ? playersTurn = "p2" : playersTurn = "p1"; 
    } 
}); 

在这里,你可以看到它的jsfiddle:http://jsfiddle.net/SXjSe/4/

+0

:(没有回答我QQ – 2013-02-20 20:42:32

+0

只能有一个答案哈哈;) – 2013-02-21 23:59:12

相关问题