使用本地存储在bootstrap 4中保持页面刷新活动标签?

时间:2018-05-19 08:05:12

标签: javascript php html5 local-storage bootstrap-4

我正在尝试在页面刷新时保持选定的标签处于活动状态。但是当我无法在bootstrap 4中找到任何选项卡的解决方案时。我试图根据bootstrap 3解决方案进行更改,但没有任何效果。请帮帮我。

HTML

<ul class="nav my-nav1 nav-tabs mt-3 " id="myTab" role="tablist">
   <li class="nav-item border border-secondary rounded">
    <a class="nav-link active"  data-toggle="tab" href="#menu1">MENU1</a>
 </li>
 <li class="nav-item border border-secondary rounded">
   <a class="nav-link "  data-toggle="tab" href="#menu2">MENU2</a>
 </li>
</ul>

这是我正在使用的js,但它不起作用。

JS

<script type="text/javascript">
  $(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');
  }
 });
</script> 

1 个答案:

答案 0 :(得分:4)

jQuery选择器错误:$('#myTab a[href="' + activeTab + '"]'),它应该是......

$('.nav-tabs a[href="' + activeTab + '"]').tab('show');

https://www.codeply.com/go/C2B3mcrgSJ

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

var activeTab = localStorage.getItem('activeTab');
if(activeTab){
    $('.nav-tabs a[href="' + activeTab + '"]').tab('show');
}