显示引导选项卡。bs.tab 在页面加载时未触发

Jer*_*ler 5 jquery tabs twitter-bootstrap

我的页面上有几个选项卡,我试图在页面重新加载时保持选项卡处于活动状态。我通过将哈希值推入网址来做到这一点:

$('.nav-tabs a[data-toggle="tab"]').click(function () {
    window.history.pushState("", "", $(this).attr('href'));
});
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,即使用户重新加载页面,我也会保持选项卡处于活动状态。

我正在尝试捕获shown.bs.tab事件,但显然事件在页面重新加载时不会触发,但在单击任何其他选项卡时它会起作用

$('.nav-tabs a[data-toggle="tab"]').on('shown.bs.tab', function () {
    //do something
});
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

编辑

active类被从li和中删除div.tab-pane

我什至尝试手动调用 tab.show 事件,但没有帮助

var hash = window.location.hash;
if(hash) {
    $('.nav-tabs a[href="' + hash + '"]').tab('show'); //or trigger('click')
}
Run Code Online (Sandbox Code Playgroud)

Jer*_*ler 3

似乎.tab('show');不会在已显示的选项卡上触发事件。

相反,我将其替换为.trigger('shown.bs.tab');并且它正常工作,所以我的代码现在看起来像这样:

var hash = window.location.hash;
if (hash) {
    $('.nav-tabs a[href="' + hash + '"]').trigger('show.bs.tab');
}
Run Code Online (Sandbox Code Playgroud)