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

游戏生命值耗尽时重置按钮未显示的问题排查

问题排查与修复方案

你的代码里有三个核心问题导致重置按钮无法正常显示,逐一解决就能搞定:


1. 条件判断语法错误

原代码里的match逻辑括号位置完全错误,导致判断逻辑失效。而且用match不如直接用includes更直观(因为src会返回完整URL,includes能直接检测是否包含目标路径)。

错误写法:

if (foodHeart1.src.match("images/emptyheart.png" && playHeart1.src.match("images/emptyheart.png")))

正确写法:

if (foodHeart1.src.includes("images/emptyheart.png") && playHeart1.src.includes("images/emptyheart.png"))

2. CSS display属性取值错误

display: "visible"是无效的CSS值,visible是visibility属性的合法取值,而display的常用显示值是block、inline、inline-block等,根据你的布局选一个合适的就行。

错误写法:

resetButton.style.display = "visible";

正确写法(示例用block):

resetButton.style.display = "block";

3. 未在爱心状态变化时重新调用检测函数

你只在页面加载时调用了一次hideReset(),但当爱心从满变空的时候,没有再次触发这个函数去检查状态,所以按钮不会自动显示。

需要在每次爱心图片更新后,手动调用hideReset(),比如你修改foodHeart1.src或playHeart1.src的代码后面,加上hideReset();。


完整修正后的代码示例

const resetButton = document.getElementById('reset');

function reset() {
  location.reload();
}

resetButton.addEventListener('click', reset);

// Hide reset button until no hearts left
function hideReset() {
  // 修正条件判断逻辑,用includes替代match
  const allHeartsEmpty = foodHeart1.src.includes("images/emptyheart.png") && playHeart1.src.includes("images/emptyheart.png");
  // 修正display属性值
  resetButton.style.display = allHeartsEmpty ? "block" : "none";
}

// 页面加载时初始化状态
hideReset();

// 示例:每次爱心状态更新后调用(需要替换成你实际修改爱心的代码位置)
// 比如当扣减爱心时:
// foodHeart1.src = "images/emptyheart.png";
// hideReset(); // 调用检测函数更新按钮状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:52:33