Javascript 值达到0时立即更改按钮

Javascript 值达到0时立即更改按钮,javascript,jquery,Javascript,Jquery,当我单击按钮时,用户HP将下降到0,然后按钮更改。但更重要的是,当userHealth为零时,按钮没有改变。您必须再单击一次才能更改按钮。如何解决这个问题 JS: $(“.attBtn”)。单击(函数(){ var userId=4; var attackdmg=Math.floor(Math.random()*(20-1+1))+1; var userdmg=Math.floor(Math.random()*(20-1+1))+1; var最小值=0; if(userHealth==0){ i

当我单击按钮时,用户HP将下降到0,然后按钮更改。但更重要的是,当
userHealth
为零时,按钮没有改变。您必须再单击一次才能更改按钮。如何解决这个问题

JS:

$(“.attBtn”)。单击(函数(){
var userId=4;
var attackdmg=Math.floor(Math.random()*(20-1+1))+1;
var userdmg=Math.floor(Math.random()*(20-1+1))+1;
var最小值=0;
if(userHealth==0){
info.innerHTML=“”+user.textContent+”已被击败;
css(“背景色”、“蓝色”);
css(“边框”、“无”);
innerAttBtn.innerHTML=“获得奖励”;
返回false;
}else if(附件高度==0){
info.innerHTML=“您已被击败。”;
}else if(attackerHealth==0&&userHealth==0){
info.innerHTML=“抽签战斗”;
}否则{
userHealth-=attackdmg;
attackerHealth-=userdmg;
document.getElementById('attackerBar').setAttribute(“样式”,“宽度:“+attackerHealth+“%”);
document.getElementById('userBar').setAttribute(“样式”,“宽度:“+userHealth+”%”);
$.ajax(“/arena/fight user/”+userId+“/attack/”+attackdmg+“/”+userdmg),
{
}); 
如果(userHealth<0){userHealth=minimum;}
如果(attackerHealth<0){attackerHealth=minimum;}
userHp.innerHTML=''+userHealth+'';
attackerHp.innerHTML=''+attackerHealth+'';
info.innerHTML=''+user.textContent+''+'点击用'+userdmg+'dmg
'+'点击' +“”+user.textContent+”“+”带“+attackdmg+”dmg“; } });
存在逻辑缺陷。 之所以您必须再次单击,是因为您在HP实际变为零之前声明了在HP为0时应该发生什么

解决方案 把这个

userHealth -= attackdmg;
attackerHealth -= userdmg;
if(userHealth < 0){userHealth = minimum;}
if(attackerHealth < 0){attackerHealth = minimum;}

你能提供一个提琴吗?我假设你的usershealth是用整数(没有浮点数或小数)计算的。有没有一种简单的方法可以添加一个快速检查,如果userHealth==1,那么就更改按钮?假设每次攻击至少造成1点伤害。您也许可以在click函数的最开始处检查这一点,并在执行任何其他代码之前更改按钮。这只是一个想法,因为我没有过多地查看代码,但似乎您正遭受一些逻辑问题的困扰。
userHealth -= attackdmg;
attackerHealth -= userdmg;
if(userHealth < 0){userHealth = minimum;}
if(attackerHealth < 0){attackerHealth = minimum;}
if(userHealth == 0){
...