1
我想打開特定的引導選項卡從單擊一個外部鏈接。如何避免滾動到頂部時打開引導標籤
<ul class="nav nav-tabs">
<li><a href="#profile" data-toggle="tab">Profile</a></li>
<li><a href="#message" data-toggle="tab">Messages</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane" id="profile">Contents</div>
<div class="tab-pane" id="message">Contents</div>
</div>
// Out side link which is place on different page:
<a href="index.php?p=edit-profile#profile">Profile Link From Outside</a>
這是我嘗試過使用jQuery:
// Javascript to enable link to tab
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.bs.tab', function (e) {
window.location.hash = e.target.hash;
})
這是正確地打開我的標籤。但我的問題是,當它打開頁面滾動到頁面的頂部。有沒有辦法避免這個問題?
我把它與.scrollTop();
並列,但我無法弄清楚。
添加.scrollTop();
後,我的代碼看起來像這樣。
// Javascript to enable link to tab
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.bs.tab', function (e) {
window.location.hash = e.target.hash;
$('html,body').scrollTop(300);
});
任何想法將不勝感激。 謝謝。
也許它滾動到標籤?如果是這種情況,您可以使用class更改id或防止鏈接的默認行爲。 – Marii
嘗試在'shown.bs.tab'事件上添加'e.preventDefault();'。 – D4V1D
[如何用jQuery停止默認鏈接點擊行爲]的可能重複(http://stackoverflow.com/questions/5632031/how-to-stop-default-link-click-behavior-with-jquery) – D4V1D