我正在开发一个网页,其中使用Twitter的Bootstrap框架及其Bootstrap Tabs JS。效果很好,但我尝试在标签面板之外添加其他链接以打开标签,点击ul --> li链接下的标签链接即可正常工作。

但是当我单击在单击nav panel-tabs自身外部的链接时,如何将选项卡面板开关和active类添加到nav panel-tabs CSS类元素中(因为li类在我的情况下显示了不同的背景色)。 />例如:

这些链接在页面的面板代码之外:

<a href="page.php#gallery">Gallery</a>
<a href="page.php#movies">Movies</a>


我需要切换选项卡的状态类nav panel active <ul class="nav panel-tabs">处于活动状态,并在单击其他链接时将其删除。

这是带有导航选项卡的面板:

<div class="panel-heading">
    <div class="padpanel">Panel Heading</div>
    <div class="pull-left">
        <ul class="nav panel-tabs">
            <li class="active"><a href="#profile" data-toggle="tab">Profile</a></li>
            <li><a href="#gallery" data-toggle="tab">Gallery</a></li>
            <li><a href="#movies" data-toggle="tab">Movies</a></li>
        </ul>
    </div>
</div>

<div class="panel-body">
    <div class="tab-content">
        <div class="tab-pane active" id="profile">Profile tab </div>
    </div>
</div>
<div class="panel-body">
    <div class="tab-content">
        <div class="tab-pane" id="gallery">Gallery tab </div>
    </div>
</div>
<div class="panel-body">
    <div class="tab-content">
        <div class="tab-pane" id="movies">Movies tab </div>
    </div>
</div>


评论

onloading,$(“ a [href $ ='” + location.hash.slice(1)+“']”)。click()。那么您的部分选择应该在重新加载后保持不变,并且可以链接。

#1 楼

您可以使用jQuery获取页面URL #hash并选择Bootstrap选项卡...

var hash = document.location.hash;
if (hash) {
    $('.nav-tabs a[href='+hash+']').tab('show');
} 

// Change hash for page-reload
$('.nav-tabs a').on('shown.bs.tab', function (e) {
    window.location.hash = e.target.hash;
});


代码:http://codeply.com/go/RypzN2UXKF

演示(选择标签2):http://codeply.com/render/RypzN2UXKF#tab2

评论


我不得不将代码更改为$('。nav-tabs a [href =“'+ hash +'”]')。tab('show');为了使其正常工作,在没有附加引号的情况下收到语法错误。

–无窗口
16 Dec 21 '21:33

这对我的项目有所帮助,但是我使用了香草JS,例如:if(document.location.hash){document.querySelectorAll('ul.tabs li a [href =“'+ document.location.hash +'”] ')[0] .click(); }

–人
17年8月1日在11:40