如何使用Bootstrap 5.2保留活动选项卡的焦点

xzlaal3s  于 2022-12-07  发布在  Bootstrap
关注(0)|答案(1)|浏览(187)

我在Bootstrap 4及以下版本中看到了关于如何在刷新浏览器后保持活动标签的焦点的示例,但在Bootstrap 5中没有看到任何示例。
当使用Bootstrap 5选项卡时,我无法使用Bootstrap 4中的示例。
HTML语言

<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
    <button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target=

"#home-tab-pane" type="button" role="tab" aria-controls="home-tab-pane" aria-selected="true">Home</button>
    </li>
    <li class="nav-item" role="presentation">
        <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile-tab-pane" type="button" role="tab" aria-controls="profile-tab-pane" aria-selected="false">Profile</button>
    </li>
    <li class="nav-item" role="presentation">
        <button class="nav-link" id="contact-tab" data-bs-toggle="tab" data-bs-target="#contact-tab-pane" type="button" role="tab" aria-controls="contact-tab-pane" aria-selected="false">Contact</button>
    </li>
</ul>

<div class="tab-content" id="myTabContent">
    <div class="tab-pane fade show active" id="home-tab-pane" role="tabpanel" aria-labelledby="home-tab" tabindex="0">Home tab content</div>
    <div class="tab-pane fade" id="profile-tab-pane" role="tabpanel" aria-labelledby="profile-tab" tabindex="0">Profile tab content</div>
    <div class="tab-pane fade" id="contact-tab-pane" role="tabpanel" aria-labelledby="contact-tab" tabindex="0">Contact tab content</div>
</div>

jQuery查询

$(document).ready(function(){
    $('a[data-toggle="tab"]').on('show.bs.tab', function(e) {
        localStorage.setItem('activeTab', $(e.target).attr('href'));
    });
    var activeTab = localStorage.getItem('activeTab');
    if(activeTab){
        $('#myTab a[href="' + activeTab + '"]').tab('show');
    }
});

https://jsfiddle.net/0czektof/2/

pftdvrlh

pftdvrlh1#

与Bootstrap 4相比,Bootstrap 5发生了很大变化。
使用Bootstrap 5中的示例。
您的代码中存在一些错误,这与您使用了较旧版本的示例这一事实有关。

  • 您的querySelector使用a-元素,但您的HTML使用button-元素。
  • 使用了错误的属性选择器。 Bootstrap 5使用data-bs-toggle而不是data-toggle
  • Bootstrap 5不再添加.tab()函数,它使用自己的全局对象来管理东西。

第一个
下面是一个正在工作的fiddle

相关问题