新闻中心

解决 Bootstrap List Group 嵌套链接点击后失效的问题

2025-10-21
浏览次数:
返回列表

解决 bootstrap list group 嵌套链接点击后失效的问题

本文旨在解决Bootstrap List Group嵌套链接在初次点击后失效的问题。通过J*aScript代码,动态移除已激活链接的`active`类,确保每次点击父级Tab时,子链接都能正确响应,实现预期的页面导航效果。本文提供详细的代码示例和解释,帮助开发者理解并解决类似问题。

在使用 Bootstrap 的 List Group 组件创建嵌套链接时,可能会遇到一个问题:子链接在第一次点击后“冻结”,无法再次激活。 这通常是因为 Bootstrap 的 Tab 切换机制导致,一旦某个 Tab 被激活,其关联的链接就会保持 active 状态,从而阻止后续的点击事件生效。

问题分析

问题的核心在于 Bootstrap 的 Tab 组件默认行为:当一个 Tab 被点击并激活后,它会一直保持 active 状态。对于嵌套在 List Group 中的链接,这意味着一旦 Link 1 或 Link 2 被点击,它们就会一直处于激活状态,导致再次点击 Home 或 Profile 时,这些链接无法正确显示对应的页面内容。

解决方案

解决这个问题的关键在于,每次点击父级 Tab(Home 或 Profile)时,手动移除子链接的 active 类。 这可以通过 J*aScript 来实现,具体步骤如下:

MarsCode MarsCode

字节跳动旗下的免费AI编程工具

MarsCode 339 查看详情 MarsCode
  1. 获取 DOM 元素: 使用 document.querySelector 获取 Home、Profile 以及 Link 1 和 Link 2 对应的 DOM 元素。
  2. 添加事件监听器: 为 Home 和 Profile Tab 添加 click 事件监听器。
  3. 移除 active 类: 在事件处理函数中,使用 classList.remove("active") 移除对应子链接的 active 类。

代码示例

以下是解决此问题的 J*aScript 代码片段:

const homeTab = document.querySelector("#list-home-list");
const profileTab = document.querySelector("#list-profile-list");

const link1 = document.querySelector("#link-1-tab .list-group-item");
const link2 = document.querySelector("#link-2-tab .list-group-item");

homeTab.addEventListener("click", () => {
  link1.classList.remove("active");
});

profileTab.addEventListener("click", () => {
  link2.classList.remove("active");
});

完整代码

以下是包含修复代码的完整 HTML 示例:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">

<div class="row">
  <div class="col-4">
    <div class="list-group" id="list-tab" role="tablist">
      <a class="list-group-item list-group-item-action active" id="list-home-list" data-toggle="tab" href="#list-home" role="tab" aria-controls="home">Home</a>
      <a class="list-group-item list-group-item-action" id="list-profile-list" data-toggle="tab" href="#list-profile" role="tab" aria-controls="profile">Profile</a>
    </div>
  </div>
  <div class="col-8">
    <div class="tab-content" id="n*-tabContent">
      <div class="tab-pane fade show active" id="list-home" role="tabpanel" aria-labelledby="list-home">
        <div class="list-group" id="link-1-tab">
          <a class="list-group-item" data-toggle="tab" href="#aa" role="tab" aria-controls="a">
            Link 1
          </a>
        </div>
      </div>

      <div class="tab-pane fade" id="list-profile" role="tabpanel" aria-labelledby="list-profile">
        <div class="list-group" id="link-2-tab">
          <a class="list-group-item" data-toggle="tab" href="#bb" role="tab" aria-controls="b">
            Link 2
          </a>
        </div>
      </div>
    </div>
  </div>
</div>
<br><br>

<div class="tab-content" id="n*-tabPage">
  <div class="tab-pane fade show active" id="aa" role="tabpanel" aria-labelledby="aa">
    Page 1
  </div>
  <div class="tab-pane fade" id="bb" role="tabpanel" aria-labelledby="bb">
    Page 2
  </div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<script>
  const homeTab = document.querySelector("#list-home-list");
  const profileTab = document.querySelector("#list-profile-list");

  const link1 = document.querySelector("#link-1-tab .list-group-item");
  const link2 = document.querySelector("#link-2-tab .list-group-item");

  homeTab.addEventListener("click", () => {
    link1.classList.remove("active");
  });

  profileTab.addEventListener("click", () => {
    link2.classList.remove("active");
  });
</script>

注意:

  • 确保在 HTML 中正确引用 Bootstrap 的 CSS 和 J*aScript 文件,以及 jQuery 库。
  • 将 J*aScript 代码放在 HTML 文件的

以上就是解决 Bootstrap List Group 嵌套链接点击后失效的问题的详细内容,更多请关注其它相关文章!


# 拖拽  # 兰州seo整站优价格  # 兰蔻网站建设需要多久  # 宝安区seo哪里好  # 武汉网站建设推广咨询  # 乐平市建设网站  # seo培训班排行  # 汕尾个人网站推广  # 桂花糕营销推广方案策划  # 渭南网站建设百度  # 东莞网站建设关键词优化  # 都能  # 放在  # 选择器  # 是因为  # 容器内  # css  # 自定义  # 就会  # 复选框  # 移除  # ssl  # npm  # go  # ajax  # bootstrap  # js  # html  # jquery  # java  # javascript 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧  MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用  b站如何看历史记录_b站观看历史找回方法  J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案  高德地图怎么看全景照片_高德地图全景照片浏览教程  J*aScript中正确使用querySelectorAll与复杂CSS选择器  J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明  格力空气能E5故障代码是什么情况_格力空气能E5代码解析与应对措施  台积电1.4nm工艺A14瞄准2028:10年来性能提升80%  Lar*el递归关系中排除子孙节点的策略  Golang如何使用const iota_Go iota常量计数器讲解  精准捕获:如何在页面中监听除特定元素外的所有点击事件  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  抖音网页版快捷访问 抖音网页版网页版入口操作教程  win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】  CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略  如何仅使用CSS更改登录界面背景图像图标的颜色  绝地鸭卫平a核爆刀流玩法攻略  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  微信客户端如何收红包_微信客户端接收红包使用教程  汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口  J*a 递归快速排序中静态变量的状态管理与陷阱  Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询  Win10怎么制作U盘启动盘 Win10系统安装U盘制作教程【详解】  12306几点到几点不能订票? | 官方最新系统维护时间全解析  网站内容防复制粘贴的实现策略与局限性  斑马英语APP如何开启夜间护眼阅读_斑马英语APP夜间模式与低蓝光设置教程  Spyder启动失败:字体文件权限拒绝错误解决方案  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  微博网页版首页入口 微博电脑端官网登录链接  poki网页游戏推荐_poki免费游戏平台入口  Go语言中JSON数据解码与字段访问指南  sublime怎么格式化代码_sublime代码美化与一键排版插件配置  PySpark中从现有列右侧提取可变长度字符创建新列的教程  Lar*el如何正确地在控制器和模型之间分配逻辑_Lar*el代码职责分离与架构建议  谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问  快手极速版在线观看 官方网页版登录地址  汽车之家官方网站官网入口_汽车之家网页版直接进入  抖音网页版怎么|直播|_抖音网页版开播操作指南  Lar*el 8 多关键词数据库搜索优化实践  c++ 命名空间怎么用 c++ namespace使用指南  生成rdflib自定义SPARQL函数:参数匹配与实践指南  腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程  C++ typeid如何获取类型信息_C++ RTTI运行时类型识别用法  《GTA6》开发画面疑似泄露!这次可不是AI了  Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量  微信网页版登录教程_微信网页版登录入口在哪  css滚动动画效果怎么实现_使用Animate.css滚动触发动画类 

搜索