【问题标题】:Accordion jQuery - Open section from external linkAccordion jQuery - 从外部链接打开部分
【发布时间】:2013-10-08 06:05:49
【问题描述】:

我有一个手风琴菜单,但我不知道如何链接。菜单本身运行良好。

当我点击下面的链接时,我的第一个手风琴菜单应该会打开

<a href="case_studies.html#case1">Case study 1</a>

手风琴的 JavaScript

<script type="text/javascript">
$(document).ready(function(){
 $("a#show-panel").click(function(){
    $("#lightbox, #lightbox-panel").fadeIn(300);
 })
 $("a#close-panel").click(function(){
     $("#lightbox, #lightbox-panel").fadeOut(300);
 })
})
</script>

<script type="text/javascript">
    $(function(){
        $("#accordion-header").accordion({ navigation: true });
     });
</script>

accordion.js 文件

$(document).ready(function()
{
    //Add Inactive Class To All Accordion Headers
    $('.accordion-header').toggleClass('inactive-header');

    //Set The Accordion Content Width
    var contentwidth = $('.accordion-header').width();
    $('.accordion-content').css({'width' : contentwidth });

/*  //Open The First Accordion Section When Page Loads
    $('.accordion-header').first().toggleClass('active-header').toggleClass('inactive-header');
    $('.accordion-content').first().slideDown().toggleClass('open-content');   */

    // The Accordion Effect
    $('.accordion-header').click(function () {
        if($(this).is('.inactive-header')) {
            $('.active-header').toggleClass('active-header').toggleClass('inactive-header').next().slideToggle().toggleClass('open-content');
            $(this).toggleClass('active-header').toggleClass('inactive-header');
            $(this).next().slideToggle().toggleClass('open-content');
        }

        else {
            $(this).toggleClass('active-header').toggleClass('inactive-header');
            $(this).next().slideToggle().toggleClass('open-content');
        }
    });

    return false;
});

手风琴的主体代码是

<div id="accordion-container">
    <p class="accordion-header" style="border-top:solid 1px #009edb; border-bottom:solid 1px #009edb;"><span style="padding-left:10px; color:#009edb; padding-top:10px; line-height:25px;"><a href="#case1">Case study 1</a></span></p>

        <div class="accordion-content">
        <div class="textInner">
                TEST TEXT THAT FALLS UNDER THE MENU
                </div>
        </div>

        <p class="accordion-header" style="border-top:solid 1px #009edb; border-bottom:solid 1px #009edb;"><span style="padding-left:10px; color:#009edb; padding-top:10px; line-height:25px;"><a href="#case2">Case study 2</a></span></p>

        <div class="accordion-content">
        <div class="textInner">
                TEST TEXT THAT FALLS UNDER THE MENU
                </div>
        </div>
</div>

感谢任何帮助。我的想法已经用完了。

提前干杯和感谢, G

【问题讨论】:

  • 非常感谢您将所有这些信息放在fiddle

标签: jquery


【解决方案1】:
 $(function(){
    $("#accordion-header").accordion({ navigation: true });
    $("[href='#case1']").parent('.accordion-header').click();
 });

(我让你自己了解如何从url中获取hash值)

编辑:查看您的代码,在您的手风琴插件中使用哈希更改处理程序事件(而不是单击事件)可能也更相关

【讨论】:

  • 感谢mikakun的回复。我已在此处上传文件:grouporigin.com/clients/zadco/test/case_studies.html 我的顶部导航栏似乎已停止工作。我认为是因为“导航:真实”行?而且在添加脚本函数之后,我的链接也没有使用下拉列表的 # 值。我做错了什么?
【解决方案2】:

小提琴here! 正如我从你的问题中了解到的那样,这很有效。

    <li class="dropdown">
    <a id="drop4" role="button" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
    <ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4">
            <li role="presentation"><a class= "opener" data-panel="0" role="menuitem" tabindex="-1" href="#">Bank</a></li>
            <li role="presentation"><a role="menuitem"class= "opener" data-panel="1" tabindex="-1" href="#">Cash</a></li>
            <li role="presentation"><a role="menuitem" class= "opener" data-panel="2" tabindex="-1" href="#">Property</a></li>          
    </ul>
</li>
    <div id="Accordion">
    <h3>Section 1</h3>
    <div>
        <p></p>
    </div>
<h3>Section 2</h3>
    <div>
       <p></p>
    </div>
<h3>Section 3</h3>
    <div>
       <p></p>
    </div>
<h3>Section 4</h3>
    <div>
        <p>One</p>
        <p>Two</p>
    </div>

它的javascript是:

var $accordion = $("#Accordion");

$accordion.accordion();

$(".opener").on("click", function () {
    var $this = $(this),
        toOpen = $this.data("panel");

    $accordion.accordion("option", "active", toOpen);

    return false;
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
相关资源
最近更新 更多