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

使用JavaScript与CSS类实现按钮切换时点击button2误选button3问题

问题原因

你当前的togbtn9函数逻辑是只要触发就同时切换3个按钮的样式类,没有区分当前点击的目标按钮。初始状态下只有b1是激活状态(blueback类),点击任意按钮时三个按钮的类都会同步翻转,自然就会出现同时有两个按钮变成激活状态的异常。

修复方案

1. 调整HTML的点击事件绑定

给每个按钮的onclick属性传入当前点击的元素自身:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />

<div class="col-12 f9">
  <div class="btn-group">
    <button type="button" id="b1" onclick="togbtn9(this)" class="btn blueback f9 noround">Button1</button>
    <button type="button" id="b2" onclick="togbtn9(this)" class="btn f9 greyback noround">Button2</button>
    <button type="button" id="b3" onclick="togbtn9(this)" class="btn f9 greyback noround">Button3</button>
  </div>
</div>

2. 重写JS逻辑

先统一把所有按钮重置为非激活样式,再单独给当前点击的按钮设置激活样式即可:

function togbtn9(currentBtn) {
  // 所有按钮重置为非激活状态
  $(".btn-group .btn").removeClass("blueback").addClass("greyback");
  // 当前点击的按钮设置为激活状态
  $(currentBtn).removeClass("greyback").addClass("blueback");
}

原有CSS样式无需修改,可以直接保留使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 16:39:00