如果语句似乎失败,即使它打印出一个矛盾的消息

时间:2018-03-07 20:57:58

标签: javascript jquery if-statement jquery-plugins jquery-animate

  <script src="jquery-3.3.1.js"></script>
  <script src="jquery.hotkeys.js"></script>
  <script>

    $(document).ready(function(){
      $(document).on("keydown", null, "down", function(){
        var leftPaddleRef = document.getElementById('leftPaddle');
        if (leftPaddleRef.style.top >= "100") {
          alert(leftPaddleRef.style.top);
        }
        else{
          $("#leftPaddle").animate({
            top: "+=3%"
          },
            "fast"
          );
        }
      });
    });

  </script>

^这是我的脚本。 “leftPaddle”是乒乓球游戏中的左侧球拍,它的“顶部”值为50%的div将其设置在页面的中间位置,我希望它在按下向下键时向下移动直到最高值达到100%。该     “警报(leftPaddleRef.style.top);” 仅用于故障排除目的。

整个程序的问题是第二次按下向下键if语句失败并打印“53.00001%”或具有相似小数位数的东西,如果重要的话。我想知道的是,如果该值仅为53%,那么if语句就会失败。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

尝试将parseFloat应用于leftPaddleRef.style.top。这将删除百分号并将其视为数字/浮点而不是字符串:

<script src="jquery-3.3.1.js"></script>
<script src="jquery.hotkeys.js"></script>
<script>

    $(document).ready(function(){
      $(document).on("keydown", null, "down", function(){
        var leftPaddleRef = document.getElementById('leftPaddle');
        var leftPaddleTop = parseFloat(leftPaddleRef.style.top);
        if (leftPaddleTop >= 100) {
          alert(leftPaddleRef.style.top);
        }
        else{
          $("#leftPaddle").animate({
            top: "+=3%"
          },
            "fast"
          );
        }
      });
    });

</script>