这是我的代码:
$('.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按钮消失。怎么解决这个?
答案 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)
当val
为1
时,请查看您的代码,看看它在做什么:
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;