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

如何修复HTML游戏中JS hover仅触发一次alert的失效问题?

问题修复方案

错误原因

你代码里的核心问题是函数内部重新声明了同名变量:函数内的let hover1 = 1;会在函数作用域中创建一个新的局部变量,覆盖了全局的hover1。执行if (hover1 === 0)时,局部的hover1还未初始化(处于暂时性死区),值为undefined,不等于0,所以alert完全不会触发;即使触发,修改的也是局部变量,全局变量不会变化,也达不到仅触发一次的需求。

修复代码

JavaScript 部分

let hover1 = 0;

function hoverAlert() {
    if (hover1 === 0) {
        alert('Test Alert');
        hover1 = 1; // 直接修改全局变量,不再重新声明
    }
}

HTML 绑定示例

确保你的链接正确绑定了鼠标悬停事件:

<a href="#" onmouseover="hoverAlert()">悬停触发测试</a>

效果说明

  • 第一次鼠标悬停链接时,hover1为0,触发alert,随后hover1被设为1;
  • 再次悬停链接时,hover1为1,不会触发alert;
  • 刷新页面后,hover1重置为0,可再次触发alert。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:22:16