转到不同页面链接上的特定选项卡单击并切换活动类

Posted

技术标签:

【中文标题】转到不同页面链接上的特定选项卡单击并切换活动类【英文标题】:Go to Specific Tab on different Page link click and toggle active class 【发布时间】:2015-09-08 12:39:59 【问题描述】:

我正在开发一个使用 Twitter 的 Bootstrap 框架和他们的 Bootstrap Tabs JS 的网页。它工作得很好,但我试图在标签面板之外添加额外的链接来打开标签,点击ul --> li 链接下的标签链接效果很好。

但是当我点击 nav panel-tabs 之外的链接时,如何才能将选项卡面板开关和 active 类添加到 nav panel-tabs @987654327当单击nav panel 本身之外的链接时@ CSS 类元素(因为在我的情况下active 类显示不同的背景颜色)。

例如:

这些链接位于页面上方的面板代码之外:

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

我需要将标签类&lt;ul class="nav panel-tabs"&gt; --&gt; &lt;li&gt; 的状态切换为活动状态,并在单击其他链接时将其删除。

这是带有导航标签的面板:

<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>

【问题讨论】:

正在加载,$("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');为了让它工作,在没有额外引号的情况下收到语法错误。 这帮助我完成了一个项目,但我已经像这样使用 vanilla JS:if (document.location.hash) document.querySelectorAll('ul.tabs li a[href="' + document.location.hash + '"]')[0].click();

以上是关于转到不同页面链接上的特定选项卡单击并切换活动类的主要内容,如果未能解决你的问题,请参考以下文章

使搜索结果将用户带到页面上的特定选项卡?

检测单击当前活动的选项卡。 (角材料选项卡)

当我单击 Eclipse 中的按钮时,使用 tabHost 并转到特定选项卡

使用关闭按钮切换引导选项卡

禁用页面刷新并单击“提交”时转到下一个选项卡

指向 Bootstrap 导航选项卡的 href 链接未在同一页面上激活