值达到0时按钮消失JAVASCRIPT

时间:2017-07-22 12:38:42

标签: javascript

这是我的代码:

$('.upgrade-strength').on('click', function () {
    var strCount = $('#strId');
    var points = $('#points');
    var userId = $(this).attr('id');
    strCount.html(function(i, val) { return val*1+1 }); 
    points.html(function(i, val) { 

    if(val*1>0){
         return val*1-1;
     }else{
        document.getElementById("strBtn").innerHTML = "";
        document.getElementById("dexBtn").innerHTML = "";
        document.getElementById("vitBtn").innerHTML = "";
        document.getElementById("intBtn").innerHTML = "";
     }

});

    $.ajax("/upgrade-strength/"+userId,
    {

    });     
});

<p>Available points: <strong><span id="points">{{Auth::user()->points}}</span></strong></p>

当我点击按钮时,计数器下降到0然后按钮消失。但更重要的是,当时 points.html(function(i, val)达到零按钮没有消失。你必须再点击一次tu按钮消失。怎么解决这个?

2 个答案:

答案 0 :(得分:0)

试试这个会起作用:

strCount.html(function(i, val) { return val*1+1 }); 
    points.html(function(i, val) { 

    if(val*1>0){
         val = val*1-1;
         if(val == 0){
             document.getElementById("strBtn").innerHTML = "";
             document.getElementById("dexBtn").innerHTML = "";
             document.getElementById("vitBtn").innerHTML = "";
             document.getElementById("intBtn").innerHTML = "";
         }
         return val;
     }else{
        document.getElementById("strBtn").innerHTML = "";
        document.getElementById("dexBtn").innerHTML = "";
        document.getElementById("vitBtn").innerHTML = "";
        document.getElementById("intBtn").innerHTML = "";
     }

答案 1 :(得分:0)

val1时,请查看您的代码,看看它在做什么:

  • if(val*1>0) - 我不知道你为什么继续使用*1,但没关系。 1 > 0是正确的,因此我们会在if阻止。
  • return val*1-1; - 再次,*1的交易是什么?无论如何,这会返回0
  • else未运行

下次点击时,if(val*1>0)为false,导致else运行,隐藏按钮。

相反,你应该做类似的事情:

  • 如果值为1,请隐藏按钮
  • 无论哪种方式,return val-1;