【问题标题】:Nested Accordions within tabs选项卡内的嵌套手风琴
【发布时间】:2014-01-21 15:43:17
【问题描述】:

这个论坛的新手,所以请温柔!我一直在使用一组选项卡内的 jQuery Accordions 时遇到问题。选项卡工作正常,手风琴也是如此,但是......我真正想要的是能够使用手风琴一部分内的链接转到手风琴的另一部分。手风琴将用作说明手册,因此在某些部分中会有一些内容基本上是告诉用户“请参阅本节”。

我在这里查看了某些答案,例如:jquery ui accordions within tabshttp://jsfiddle.net/9nKZp/1/show/#1|,并在整个互联网上搜索了带有锚点的手风琴以及选项卡中的嵌套手风琴,但我还没有遇到这个问题!!真不敢相信没有人这样做!

这是我目前的代码:

<!-- tabs -->
<link rel="stylesheet" href="/resources/css/tabs.css" type="text/css" media="screen" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="/resources/js/tabs.js"></script>
<!-- ENDS tabs -->
<!-- accordion -->
<link rel="stylesheet" href="/resources/css/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<!-- ENDS accordion -->

<script>
    $(function () {
        $(".accordion").accordion({
            collapsible: true,
            heightStyle: "content",
            active: false,
        
        });
    });
</script>

<!-- TABS START -->
<div class="tabs_wrapper">
    <!-- 1st new tab design START -->
    <div id="new_tabs">
        <ul>
            <li class="active"><a href="#tab1" rel="tab1">Tab1</a></li>
            <li><a href="#tab2" rel="tab2">Tab2</a></li>
            <li><a href="#tab3" rel="tab3">Tab3</a></li>

        </ul>
    </div>
    <div id="new_tabs_content">
        <div id="tab1" class="tab_content" style="display: block;">

            <p>
                Data on first tab
            </p>


        </div>
        <div id="tab2" class="tab_content">
            <h1>Tab2</h1>

            <div class="accordion">

                <h3><a id="#1">1</a></h3>
                <div>
                    Content of 1
                    <div class="accordion">
                        <h3><a id="#1.1">1.1</a></h3>
                        <div>
                            Content of 1.1
                            <div class="accordion">
                                <h3><a id="#1.1.1">1.1.1</a></h3>
                                <div>
                                    Content of 1.1.1, please see <a href="#2.1.2">2.1.2</a>
                                </div>
                                <h3><a id="#1.1.2">1.1.2</a></h3>
                                <div>
                                    Content of 1.1.2
                                </div>
                                <h3><a id="#1.1.3">1.1.3</a></h3>
                                <div>
                                    Content of 1.1.3
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <h3><a id="#2">2</a></h3>
                <div>
                    Content of 2
                    <div class="accordion">
                        <h3><a id="#2.1.1">2.1.1</a></h3>
                        <div>
                            Content of 2.1.1
                        </div>
                        <h3><a id="#2.1.2">2.1.2</a></h3>
                        <div>
                            Content of 2.1.2
                        </div>
                        <h3><a id="#2.1.3">2.1.3</a></h3>
                        <div>
                            Content of 2.1.3
                        </div>
                    </div>
                </div>
            </div>

        </div>
        <div id="tab3" class="tab_content">
            <h1>Tab3</h1>
            <p>another load of data</p>
        </div>

    </div>
    <!-- 1st new tab design END -->
</div>
<!-- TABS END -->

如果您需要我正在使用的任何其他代码,例如 tabs.js 等,请告诉我。

请帮帮我!这有可能吗?!

如果你能提供帮助,非常感谢和大大的拥抱!!:-)

【问题讨论】:

  • 第二个链接似乎对我有用。你还需要什么? (可能您正在尝试使用不同的选项卡插件 - /resources/js/tabs.js ?)
  • 根据我在上面第一段中的查询:我真正想要的是能够使用手风琴的一部分内的链接转到手风琴的另一部分。手风琴将用作说明手册,因此在某些部分中会有一些内容基本上是告诉用户“请参阅本节”。在我粘贴在第 1.1.1 节的代码中,有一个“请参阅”链接,然后需要将用户发送到手风琴的第 2.1.1 节。选项卡和手风琴工作正常,但我无法使手风琴内的链接转到不同的部分。
  • 好的,在这里查看示例:jsfiddle.net/9nKZp/1/show/#1|1(打开第二个选项卡,第二个问题,但它似乎不适用于 Q1)和jsfiddle.net/9nKZp/1/show/#2|1(打开第三个选项卡和第二个问题)。如果这按需要工作,那么您可能需要提供代码的 JSfiddle 示例,我们将进一步试验,直到我们涵盖 Q1 问题和其他要求(如果还有其他要求)。 :-)
  • 感谢部长,但我认为我没有说清楚。我需要 SAME 页面中的链接而不是地址栏中的外部链接来导航到手风琴中的某个部分。我不打算使用来自外部链接的地址栏,而是使用指向另一个手风琴部分的内部链接。
  • 现在更清楚了(最好更新您的问题)!看起来你需要一个特定的 JS 功能,所以如果你把你的代码放在像 jsfiddle.net 这样的演示站点中,那么会有更多的人尝试,你将有更好的机会找到一个可行的解决方案。 ;-)

标签: javascript jquery html jquery-ui


【解决方案1】:

这是如何让这个工作的想法。

在示例http://jsfiddle.net/9nKZp/1/show/#1|1 中,标签链接似乎有效,但仅当您在新标签中加载页面时才有效,而不是从链接中加载。

您需要自己的 jsfiddle(您已经有一个 v.1),您应该在其中放置一些示例内容,其中包含从一个选项卡/问题到另一对选项卡/问题的链接(或者可能有指向同一选项卡的链接,但是另一个问题)!您还应该将半工作示例中的代码实现到您的代码中。

那么逻辑如下(使用jQuery的例子):

(1) 为您放置在选项卡内的每个链接创建点击事件,如下所示:

$('#all_tabs_container a').click( function(){
    checkInternalLinks();
});

在函数checkInternalLinks()...中:

(2) 您应该检查链接是否是内部链接(#...)以及它是否采用已知格式(例如:#x|x 或 #x|x|x 或两者兼有)

(3) 当您验证此链接时,您需要创建特定的功能来切换选项卡和手风琴。

(4) 所需的功能已经存在(!),但是在页面加载时,因此您需要花一些时间来了解正在发生的事情,因此您可以将相同的代码复制到 onclick 事件函数中。

如果你喜欢这个想法,你可以开始!即使你不能完成它,我相信其他人会帮助你:-)

【讨论】:

  • 哇!!!!终于解决了……在我的天才另一半的帮助下!!!请参阅此小提琴:jsfiddle.net/chrissy/3hL3N/2 如果您在网址中使用哈希标签(例如 www.website.com#instructions_2_3),这也有效,这将带您进入说明选项卡和手风琴项目 2.3!我的人生圆满了!
  • 我刚刚检查了 3 分钟,似乎唯一缺少的功能是地址栏中的哈希设置。在第一个示例中,有多个嵌套选项卡,并且所有选项卡都是可链接的(每个级别),现在在您的示例中内部链接有效,但地址栏仅显示到第一级的链接!因此,如果您想通过电子邮件发送链接或在此处发布链接,我将无法找到正确的选项卡!在接下来的几天里,我会试着深入研究这个......
猜你喜欢
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 2020-10-01
相关资源
最近更新 更多