在满足要求之前,如何使按钮处于非活动状态

时间:2014-09-19 20:06:19

标签: jquery html button

我试图让我设置的按钮保持不活动状态直到满足要求,然后在我使用按钮后它变为非活动状态。因此,在我的代码中,我有一个货币计数器,每当我点击屏幕上的一块煤时,它将计数一个。我希望我的按钮在我达到一定数量的金钱之前处于非活动状态,然后当它处于活动状态时,我希望它能够做一些事情,比如用另一种矿石替换煤炭。最后,当我购买新矿石时,我希望按钮再次变为非活动状态,直到我赚到足够的钱购买下一次升级。我不知道你是否可以像我想要的那样使用相同的按钮进行多次购买,但我只是学习如何彻底使用它们,这样才有可能!

重要代码:

<ul id="one"><strong id="clicks">$<span id="Money">0</span></strong></ul> <!-- Amount of money earned -->

<button type="button" id="upgrade">Upgrade Gem</button> <!-- Button to upgrade gem -->

<script> /* When coal.png is clicked, one unit is added to the money counter */
$(function() {
$('#coal').click(function() {
    moneyCalc();
});

function moneyCalc() {
    var money = parseInt($("#Money").text());
    money = isNaN(money) ? 0: ++money;

    $("#Money").text(money);
}

function resetCounter() {
    $("#Money").text(0);
    }
});
</script>

如果你能帮助我,请提前致谢!

3 个答案:

答案 0 :(得分:2)

为其添加disabled属性。因此代码类似于:

&#13;
&#13;
$(function() {
  $("#some_text").on("keyup", function() {
  if($("#some_text").val() == "foo") {
    $("#upgrade").prop("disabled", false);
    } else {
      $("#upgrade").prop("disabled", true);
      }
    });
  });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="some_text"/>
<button type="button" id="upgrade" disabled>Upgrade Gem</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

嗯,也许你可以用一些css魔法来显示和隐藏按钮以及J Query。我用这个来创建一个响应式菜单栏。逻辑需要调整,但我想这可能是朝着正确方向迈出的一步。

<!--jquery function for toggle menu-->
    <script>
        $("#show-nav").click(function() {
            $(".main-nav").toggle("slow");
            $("#close-nav").show("slow");
        });

        $("#close-nav").click(function() {
            $(".main-nav").toggle("slow");
            $("#close-nav").hide("slow");
        });
    </script>

答案 2 :(得分:0)

如果你真的想控制对事件处理的访问(与某些css技巧相反)而不是在加载时绑定click事件,只需在moneyCalc()成功测试时绑定它,然后在重置时解除绑定。

$(function() {
  $('#coal').click(function() {
    moneyCalc();
  });

  function moneyCalc() {
    var money = parseInt($("#Money").text());
    money = isNaN(money) ? 0: ++money;

    if(money > _some_value_)
    {
      $("#ore").click(function(e){
          _some_operation_();
      });
    }

    $("#Money").text(money);
  }

  function resetCounter() {
    $("#Money").text(0);
    $("#ore").unbind("click");
  }
});