2017-08-09 57 views
1

我試圖在刷新頁面後顯示profile選項卡,但頁面在頁面加載之前處於活動狀態,之後未激活。刷新頁面後,該選項卡未激活 - jquery

但我打電話location.reload()activeTab功能。 有何建議?

$(document).on('click', '#Generate', function(e) { 
    alert('hello'); 
    setTimeout(function() { 
    window.setTimeout(function() { 
     location.reload(); 
    }, 500); 
    activeTab('profile'); 
    }, 2000); 

}); 


function activeTab(tabID) { 
    $('.nav-tabs a[href="#' + tabID + '"]').tab('show'); 
}; 
<button id="Generate"> 
     Click 
    </button> 
<p> 
    &nbsp; 
</p> 
<ul class="nav nav-tabs" id="myTab"> 
    <li class="active"><a href="#home" data-toggle="tab">Home</a></li> 
    <li><a href="#profile" data-toggle="tab">Profile</a></li> 
</ul> 

<div class="tab-content"> 
    <div class="tab-pane active" id="home">Home</div> 
    <div class="tab-pane" id="profile">Profile</div> 
</div> 
+0

請分享一個工作示例。 – eulloa

+0

這聽起來像是一個X/Y問題。爲什麼要重新加載頁面並期望該選項卡處於活動狀態?您需要cookies或localStorage或URL上的某些內容來識別重新加載後的活動狀態。你爲什麼重新加載? – mplungjan

+0

其實,在我的代碼中,我是以PDF生成發票並重新加載頁面並顯示包含所有PDF列表的選項卡。所以我不能分享完整的代碼,這就是爲什麼我要求示例代碼。 – 06011991

回答

0

在這裏,你去了一個解決方案https://jsfiddle.net/0erervmb/

activeTab = function(tabID) { 
 
    $('#myTab ul li a[href="#' + tabID + '"]').click(); 
 
} 
 

 
$(document).on('click', '#Generate', function(e) { 
 
    setTimeout(function() { 
 
    window.setTimeout(function() { 
 
     location.reload(); 
 
    }, 500); 
 
    localStorage.setItem('activeTab', 'profile'); 
 
    activeTab('profile'); 
 
    }, 2000); 
 

 
}); 
 

 
$('#myTab').tabs(); 
 

 
if(localStorage.getItem('activeTab') != null){ 
 
\t activeTab(localStorage.getItem('activeTab')); 
 
}
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
 
<button id="Generate"> 
 
     Click 
 
    </button> 
 
<p> 
 
    &nbsp; 
 
</p> 
 
<div id="myTab"> 
 
    <ul> 
 
    <li class="active"><a href="#home" data-toggle="tab">Home</a></li> 
 
    <li><a href="#profile" data-toggle="tab">Profile</a></li> 
 
    </ul> 
 

 
    <div class="tab-content"> 
 
    <div class="tab-pane active" id="home">Home</div> 
 
    <div class="tab-pane" id="profile">Profile</div> 
 
    </div> 
 
</div>

點要注意

  • 我修改了HTML了一下。
  • 請加$('#myTab').tabs();
  • 用於localStorage用於重新加載後的上次激活選項卡。

二更新https://jsfiddle.net/0erervmb/1/

$(document).on('click', '#Generate', function(e) { 
 
    setTimeout(function() { 
 
    window.setTimeout(function() { 
 
     location.reload(); 
 
    }, 500); 
 
    localStorage.setItem('activeTab', 'profile'); 
 
    }, 2000); 
 

 
});

只是刪除activeTab('profile');

希望這會幫助你。

+0

即使在刷新頁面之前,它也會使標籤處於活動狀態。如何避免這種情況? – 06011991

+0

這裏你去解決方案https://jsfiddle.net/0erervmb/1/ – Shiladitya

+0

只需刪除'activeTab('profile');' – Shiladitya

相關問題