[英]Close active Bootstrap 5 Tab on click
这个问题已被问到 Bootstrap 4 及更低版本,但我认为不是 Bootstrap 5。 对于 Bootstrap 4,我使用了一些像这样的 Jquery https://www.codeply.com/go/bp/61835
单击活动选项卡时,应从选项卡按钮中删除“活动”类,并隐藏选项卡窗格。
有人有一个简单的解决方案吗? 如果不为 Bootstrap 事件(“显示”等)调用 preventDefault() 并手动执行所有操作,我将无法使其工作。
谢谢!
这里有一个很好的例子来说明如何在Bootstrap 网站上使用选项卡。
仍然有一个active
类位于触发器上,例如<button>
和目标(也使用show
类),但 JS 更强调通过数据属性结合 aria 进行控制(例如aria-selected="true"
):
<button class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" data-bs-target="#pills-home" type="button" role="tab" aria-controls="pills-home" aria-selected="true">Home</button>
...
<div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab" tabindex="0">...</div>
如果您还在上面的 Bootstrap 链接上进一步向下滚动,则有一些专门用于 JS 控制。 例如
通过 JavaScript 启用可选项卡(每个选项卡需要单独激活):
const triggerTabList = document.querySelectorAll('#myTab button')
triggerTabList.forEach(triggerEl => {
const tabTrigger = new bootstrap.Tab(triggerEl)
triggerEl.addEventListener('click', event => {
event.preventDefault()
tabTrigger.show()
})
})
您可以通过多种方式激活单个选项卡:
const triggerEl = document.querySelector('#myTab button[data-bs-target="#profile"]')
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
const triggerFirstTabEl = document.querySelector('#myTab li:first-child button')
bootstrap.Tab.getInstance(triggerFirstTabEl).show() // Select first tab
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.