使用 localstorage 记住上次选择的选项卡

Remember the last selected tab with localstorage

在 bootstrap 4 网站中,我有以下选项卡:

<ul id="tabsJustified" class="nav nav-tabs">
    <li class="nav-item"><a href="#tab1" data-target="#tab1" data-toggle="tab" class="nav-link active">Personal details</a></li>
    <li class="nav-item"><a href="#tab2" data-target="#tab2" data-toggle="tab" class="nav-link">Medical conditions</a></li>
    <li class="nav-item"><a href="#tab3" data-target="#tab3" data-toggle="tab" class="nav-link">Medication</a></li>
    <li class="nav-item"><a href="#tab4" data-target="#tab4" data-toggle="tab" class="nav-link">Care needs</a></li>
    <li class="nav-item"><a href="#tab4" data-target="#tab5" data-toggle="tab" class="nav-link">Care environment</a></li>
    <li class="nav-item"><a href="#tab3" data-target="#tab6" data-toggle="tab" class="nav-link"><i class="fa fa-plus-circle mr-2"></i>Add a second client</a></li>
</ul>

我想要的是,记住上次选择的选项卡,并在页面重新加载时转到该选项卡。

使用此代码,它仅适用于第 1、第 2 和第 6 个选项卡。

$(function() { 
    $('a[data-toggle="tab"]').on('shown.bs.tab', function () {
        localStorage.setItem('lastTab', $(this).attr('href'));
    });
    var lastTab = localStorage.getItem('lastTab');
    if (lastTab) {
        $('[href="' + lastTab + '"]').tab('show');
        console.log(lastTab);
    }
});

当我单击第 4 个选项卡时,重新加载后,第 5 个选项卡将处于活动状态。 console.log 行返回正确的选项卡 ID 或 href,我检查过了。

嗯,检查你的 href 值,你的增量“1、2、3、4、4、3”不正确,因为你有两次“4”,这就是为什么选择第五个。

只需将其更改为“1、2、3、4、5、6”即可