You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现当iloscZycia(HP)为0时停止iloscPieniedzy计数?

实现HP为0时停止金钱计数的解决方案

需求明确:当iloscZycia(HP)的值为0时,禁止对iloscPieniedzy(金钱)进行增减操作。

你之前尝试的代码有两个关键问题:

  • 误用赋值符号=而非比较符号===,这会直接把sumaZycia设为0,而非判断它的当前值
  • 就算逻辑正确,那段代码也只是一次性将金钱设为0,没有阻止后续的点击操作

正确做法是在每次点击金钱增减按钮时,先检查当前HP是否为0,如果是就直接终止函数,不执行任何金钱操作。修改后的完整代码如下:

let iloscZycia = 20;

const sumaZycia = document.getElementById("suma-zycia");
const dodajZycie = document.getElementById('dodaj-zycie');
const odejmijZycie = document.getElementById('odejmij-zycie');

dodajZycie.addEventListener("click", function() {
  iloscZycia++;
  sumaZycia.textContent = iloscZycia;
});

odejmijZycie.addEventListener("click", function() {
  iloscZycia = iloscZycia - 5;
  if (iloscZycia <= 0) {
    iloscZycia = 0
  };

  sumaZycia.textContent = iloscZycia;
});


let iloscPieniedzy = 0;

const sumaPieniedzy = document.getElementById("suma-pieniedzy");
const dodajPieniadze = document.getElementById('dodaj-pieniadze');
const odejmijPieniadze = document.getElementById('odejmij-pieniadze');

dodajPieniadze.addEventListener("click", function() {
  // HP为0时直接返回,不执行金钱增加操作
  if (iloscZycia === 0) return;
  
  iloscPieniedzy = iloscPieniedzy + 10;
  sumaPieniedzy.textContent = iloscPieniedzy;
});

odejmijPieniadze.addEventListener("click", function() {
  // HP为0时直接返回,不执行金钱减少操作
  if (iloscZycia === 0) return;
  
  iloscPieniedzy = iloscPieniedzy - 1;
  if (iloscPieniedzy <= 0) {
    iloscPieniedzy = 0
  };

  sumaPieniedzy.textContent = iloscPieniedzy;
});

修改说明:

  • 在dodajPieniadze和odejmijPieniadze的点击事件开头,新增判断逻辑:只要HP为0,就直接结束函数,跳过后续的金钱增减操作
  • 直接判断变量iloscZycia而非DOM元素sumaZycia,变量是数据的直接存储,比读取DOM内容更可靠

内容的提问来源于stack exchange,提问作者Sednavin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:11:34