新闻中心
解决 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
字节跳动旗下的免费AI编程工具
339
查看详情
- 获取 DOM 元素: 使用 document.querySelector 获取 Home、Profile 以及 Link 1 和 Link 2 对应的 DOM 元素。
- 添加事件监听器: 为 Home 和 Profile Tab 添加 click 事件监听器。
- 移除 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滚动触发动画类


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