打开子选项卡单击父级

时间:2014-12-01 12:02:27

标签: javascript jquery html css tabs

我有以下代码来显示标签内容。

点击“#tabs1”会显示子链接,但用户必须点击“#sub1”才能显示内容。

单击“#tabs1”时,我希望自动显示该部分的第一个子选项卡('#sub1')。我有什么想法会实现这个目标吗?

<nav class="inner-nav top">
        <ul>

            <li><a href="#tabs1">Tabs One</a></li>
            <li><a href="#tabs2">Tabs Two</a></li>

        </ul>
    </nav>

    <!-- Tabs #1 Begin -->

    <section class="tab-content" id="tabs1">

        <nav class="inner-nav sub">
            <ul>

                <li><a href="#1sub1">Sub Tab1 One</a></li>
                <li><a href="#1sub2">Sub Tab1 Two</a></li>

            </ul>
        </nav>

        <section class="tab-content" id="1sub1">

            // Sub Tab One Content

        </section>

        <section class="tab-content" id="1sub2">

            // Sub Tab Two Content

        </section>

    </section>

    <!-- Tabs #1 End -->


    <!-- Tabs #2 Begin -->

    <section class="tab-content" id="tabs2">

        <nav class="inner-nav sub">
            <ul>

                <li><a href="#2sub1">Sub Tab2 One</a></li>
                <li><a href="#2sub2">Sub Tab2 Two</a></li>

            </ul>
        </nav>

        <section class="tab-content" id="2sub1">

            // Sub Tab2 One Content

        </section>

        <section class="tab-content" id="2sub2">

            // Sub Tab2 Two Content

        </section>

    </section>

    <!-- Tabs #2 End -->

//// jQuery:

<script>

        jQuery(function () {
        jQuery(".tab-content").hide().first().show();
        jQuery(".inner-nav li:first").addClass("active");

        jQuery(".inner-nav a").on('click', function (e) {
            e.preventDefault();
            jQuery(this).closest('li').addClass("active").siblings().removeClass("active");
            jQuery(jQuery(this).attr('href')).show().siblings('.tab-content').hide();
        });

        var hash = jQuery.trim( window.location.hash );

        if (hash) jQuery('.inner-nav a[href$="'+hash+'"]').trigger('click');

        if (location.hash) {
  setTimeout(function() {

    window.scrollTo(0, 0);
  }, 1);
}

        });

    </script>

1 个答案:

答案 0 :(得分:1)

this

怎么样?

我在现有代码中添加了两行代码

$(function () {
    $(".tab-content").hide().first().show();
    $(".inner-nav li:first").addClass("active");

    $(".inner-nav a").on('click', function (e) {
        e.preventDefault();
        $(this).closest('li').addClass("active").siblings().removeClass("active");
        $($(this).attr('href')).show().siblings('.tab-content').hide();
        $($(this).attr('href')).find('a').eq(0).trigger('click'); // This is a new line
    })
    .eq(0).trigger('click'); // This is a new line

    var hash = $.trim(window.location.hash);

    if (hash) $('.inner-nav a[href$="' + hash + '"]').trigger('click');

    if (location.hash) {
        setTimeout(function () {
            window.scrollTo(0, 0);
        }, 1);
    }

});