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

如何用JS实现二次点击已激活按钮时移除其active类并同步折叠状态

存在的错误点

  • 给#Resume-items li绑定的点击事件逻辑存在问题:每次点击都会无条件给当前li添加active类,完全没有判断当前元素是否已经处于激活状态,二次点击已激活按钮时,即便折叠逻辑正常执行,active类也会被这段代码重新加上,自然不会消失。
  • 同时给.btn-Resume-buttons单独绑定的点击事件和li的点击事件存在逻辑重叠,没有同步处理active类的状态,导致类名和折叠面板状态不一致。
  • 额外的语法问题:document.getElementsByClassName('.Resume-click-open')写法错误,getElementsByClassName传入参数不需要加类名前缀.,且该方法返回的是DOM集合,不能直接修改style属性。

修复代码

直接替换原有JS逻辑即可,不需要修改HTML和CSS:

$(document).on('click', '#Resume-items li', function () {
    const $currentLi = $(this);
    const targetId = $currentLi.find('.btn-Resume-buttons').attr('href');
    // 判断当前关联的面板是否已经是展开状态(点击后会折叠)
    const isPanelOpened = $(targetId).hasClass('show');
    // 先移除所有按钮的激活状态
    $('#Resume-items li').removeClass('active');
    // 只有当面板即将展开时,才给当前按钮加激活类
    if (!isPanelOpened) {
        $currentLi.addClass('active');
    }
    // 修正高度设置的写法
    $('.Resume-click-open').css('height', '100px');
});
// 原有单独绑定的按钮点击事件可以直接删除,bootstrap collapse自带的data属性触发逻辑已经能满足需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:06:04