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

筛选弹窗开发问题:选中分类后替换blog-filter内All为选中分类名

你只需要修改现有JS代码,在分类点击事件的回调中新增顶部文本更新逻辑即可,同时优化原有active类切换的范围,避免误操作顶部的筛选按钮样式。

修改后的完整JS代码

$('.js-filter-blog-list').on('click', event => {
  const modalFilter = document.querySelector('.blog-filter-container');
  $(modalFilter).toggleClass('open');
});

document.querySelectorAll('.blog-filter-container .blog-filter_item').forEach(el => {
  el.addEventListener('click', () => {
    // 只切换弹窗内的选中状态,避免影响顶部按钮
    document
      .querySelector('.blog-filter-container .blog-filter_item.active')
      .classList.remove('active');
    el.classList.add('active');

    // 新增:更新顶部显示的选中分类名
    let selectedText = el.textContent.trim();
    // 如果你不需要显示分类后面的文章数量,就用下面这行替换上面的
    // let selectedText = el.textContent.replace(/\s*\(\d+\)$/, '').trim();
    document.querySelector('.blog-filter .js-filter-blog-list').textContent = selectedText;

    var dataFilter = $(el).attr('data-filter');
    if (dataFilter == 'all') {
      $('.blog-list').show();
    } else {
      $('.blog-list').hide();
      $(dataFilter).show();
    }
    // 选中后自动关闭弹窗(可选,如果你需要的话可以打开注释)
    // $('.blog-filter-container').removeClass('open');
  });
});

核心修改说明

  • 调整了事件绑定的范围,只给弹窗内的筛选项绑定点击事件,避免重复绑定顶部按钮的点击事件
  • 优化了active类的切换范围,只修改弹窗内的选中状态,不会影响顶部按钮的原有样式
  • 新增选中文本获取和顶部容器内容更新逻辑,可根据需求选择是否保留文章计数显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:45:04