【问题标题】:CSS tabs not working with anchors on bootstrap?CSS选项卡不能与引导程序上的锚一起使用?
【发布时间】:2012-08-25 08:17:47
【问题描述】:

尝试 1

<div class="bs-docs-example">
    <ul class="nav nav-tabs">
        <li class="active"><a href="#">Home</a>aaa</li>
        <li><a href="#">Profile</a>fff</li>
        <li><a href="#">Messages</a>bbb</li>
    </ul>
</div>

JSfiddle

我也尝试将data-toggle 属性设置为“选项卡”,但这只允许我在选项卡之间单击,它没有将 aaa/fff/bbb 分隔到不同的选项卡中。

这应该可以在没有任何 JavaScript 的情况下完成。

尝试 2

我最接近工作的人是:

<div class="tabbable">
    <ul class="nav nav-tabs">
        <li class="active">
            <a href="#ter" data-toggle="tab">Stir</a>
        </li>
        <li>
            <a href="#gin" data-toggle="tab">Drink</a>
        </li>
    </ul>
    <div class="tab-content">
        <div class="tab-pane active" id="ter">fff</div>
        <div class="tab-pane" id="gin">ggg</div>
    </div>
</div>

JSfiddle

但这并没有在点击时将查看器的 URL 更改为 /#ter 或 /#gin。而且它似乎在小提琴中无法正常工作......

【问题讨论】:

    标签: css tabs twitter-bootstrap toggle anchor


    【解决方案1】:

    您的jsFiddle 按预期工作——锚链接将您带到#gin 和#ter。另一方面,我相信您需要使用一些 JavaScript 来实际更改活动选项卡。这是一个使用一点 jQuery 的尝试:

    <div class="tabbable">
        <ul class="nav nav-tabs">
            <li class="active">
                <a href="#ter" data-toggle="tab">Stir</a>
            </li>
            <li>
                <a href="#gin" data-toggle="tab">Drink</a>
            </li>
        </ul>
        <div class="tab-content">
            <div class="tab-pane active" id="ter">fff</div>
            <div class="tab-pane" id="gin">ggg</div>
        </div>
    </div>
    

    JavaScript:

    $(document).ready(function() {
        $(".nav-tabs li a").click(function() {
                var li = $(this).parent("li");
                var wch = this.getAttribute("href");
                $(li).addClass("active"); //make current li active
                $(li).siblings("li").removeClass("active"); //make others inactive
                $(".tab-content div").removeClass("active"); //make all tabs inactive first
                $(wch).addClass("active"); //activate our tab;
                return false; //don't change URL
            });
    });
    

    还有一个小演示:little link。请注意,不需要使用 jQuery;如果你想避免使用它,你可以轻松地转换为 vanilla JavaScript。

    希望有所帮助!

    【讨论】:

    • 谢谢,但至少对我(Chrome)来说,您的链接中的标签没有改变,但文本是。
    • @user1438003 已修复——抱歉,我完全忘记了!
    • 谢谢,现在工作得更好了...但是是否可以更改 URL,以便我可以在 URL 中使用 #gin 或 #ter? - 另外,在 CSS 中完成这一切是否可行?
    • @user1438003 这只是更多的 JavaScript。不,只有在 CSS 中才能做到这一点。
    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2021-05-22
    相关资源
    最近更新 更多