2013-10-08 57 views
0

我有一個手風琴菜單,我無法弄清楚如何鏈接。菜單本身工作正常。Accordion jQuery - 從外部鏈接打開部分

當我點擊下面的鏈接,我的第一個手風琴菜單應該開放

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

任何幫助表示讚賞。我在這裏沒有想法。

歡呼和預先感謝, 摹

+0

,如果你把所有的[小提琴]我們真的很感激(http://jsfiddle.net) –

回答

0
$(function(){ 
    $("#accordion-header").accordion({ navigation: true }); 
    $("[href='#case1']").parent('.accordion-header').click(); 
}); 

(我讓你自己找出如何從URL中的散列值)

編輯:看你的代碼,它也可能是更適合在手風琴插件中使用散列更改處理程序事件(而不是單擊事件)

+0

感謝您的答覆mikakun。我已經在這裏上傳文件:http://grouporigin.com/clients/zadco/test/case_studies.html 我的頂部導航欄似乎已停止工作。我假設它是因爲'導航:真'的線?並且在添加腳本功能之後,下拉的#值不會被我的鏈接所採用。 我在做什麼錯? –

0

小提琴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; 
}); 
+0

停止複製粘貼他人答案http://stackoverflow.com/questions/15339847/jquery-accordion-use-anchors-to-open-specific-panels-from-external-and-interna?answertab=votes#tab-top – KAsh

+0

我沒有把它用在我的項目中的任何地方,碰到過這個問題,所以我回答了.... !!! – Yogesh