转到页面重新加载或超链接上的特定选项卡,其中选项卡由AJAX加载

我有一组Bootstrap选项卡。

HTML

 
...

JS

 var url = document.location.toString(); if (url.match('#')) { $('.nav-tabs a[href=#' + url.split('#')[1] + ']').tab('show'); } // Change hash for page-reload $('.nav-tabs a').on('shown', function (e) { window.location.hash = e.target.hash; }) // load first tab content if it is AJAX $('#main').load($('a[data-url]:first').attr("data-url") + "&silent=1", function (data) { $('.active a').tab('show'); }); 

我想要的是对于任何选项卡有焦点加载,而不是总是加载第一个。

更新:我正在关注标签。 它只是不会触发AJAX负载

这与Twitter Bootstrap选项卡不同:转到页面重新加载或超链接上的特定选项卡

转到具有焦点的最后一个选项卡的唯一方法是存储引用(使用cookie或本地存储)。

此代码使用本地存储来存储焦点选项卡的href值,然后检索它。

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