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

JS点击按钮修改div样式后立即恢复原有样式如何解决

问题原因

你使用了<a>标签作为触发按钮,且href属性为空值,点击空href的<a>标签会触发页面重载行为:你写的JS逻辑先执行修改了样式,随后页面立刻刷新,所有DOM状态恢复到初始值,就会出现样式修改后立刻回退的现象。

解决方法

可以任选以下任意一种方案修复:

  • 方案1:阻止<a>标签的默认跳转行为
    在点击事件的逻辑中添加e.preventDefault()即可,修改后的事件监听代码示例:
    document.body.addEventListener("click", (e) => {
      if (e.target.classList.contains("js-multi-btn")) {
        e.preventDefault(); // 阻止默认跳转
        gameBoard.setGameMode('multi');
        displayController.revealBoard();
      }
    });
    
    document.body.addEventListener("click", (e) => {
      if (e.target.classList.contains("js-single-btn")) {
        e.preventDefault(); // 阻止默认跳转
        gameBoard.setGameMode('single');
        displayController.revealBoard();
      }
    });
    
  • 方案2:修改<a>标签的href属性为javascript:void(0)
    更改HTML中的按钮代码,避免点击触发跳转:
    <a href="javascript:void(0)" class="js-multi-btn multi-btn">Multi Player Mode</a>
    <a href="javascript:void(0)" class="js-single-btn single-btn">Single Player Mode</a>
    
  • 方案3:替换<a>标签为原生<button>标签
    纯触发交互的按钮更适合用<button>标签,天生不会触发跳转行为,语义也更准确:
    <button class="js-multi-btn multi-btn">Multi Player Mode</button>
    <button class="js-single-btn single-btn">Single Player Mode</button>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:36:00