2012-04-30 8 views
1

折りたたまれたアコーディオン項目を含むページへのリンクを作成しようとしました。各項目はdiv ID番号で識別されます。私が作るリンクを作成するにはどうすればよい折りたたまれたアコーディオンのアイテムへのリンクを作成するにはどうすればよいですか?

itemPreviewTitle accordionHeader ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" role="tab" aria-expanded="false" aria-selected="false" tabindex="-1" style="zoom: 1; 

sample.html#itemIdX // opens to the page but not the item 

sample.html?itemIdX // same result 

項目がH3クラスを使用します。私のリンクにパラメータを追加することで、特定のアイテムをリンクして開くために

失敗した試みは、次のようになり私のitemXは拡張状態ですか?

+0

私の答えに解決策を適用する運がありましたか? –

答えて

0

Accordion API docsはそれほど簡単ではないため、activate()の機能は広告として機能しないように見えるため、これはやや厄介なことになります。

あなたの質問からは、div IDを参照してアコーディオンセクションを開くように思えます。これは箱から出ることはできません。 0ベースのインデックス(0 =最初のセクション、1 = 2番目のセクションなど)を使用しているセクションのみを識別できます。

は、このアプローチがうまくいく、と述べた:アコーディオンを含むページで

<a href="10387904_Accordion_link_2.html?openAccordionId=0">Open first item</a> 
<a href="10387904_Accordion_link_2.html?openAccordionId=1">Open second item</a> 
<a href="10387904_Accordion_link_2.html?openAccordionId=2">Open third item</a> 

、クエリ文字列からIDを抽出するために、次のコードを使用して:

は、このようなリンクを定義します

// Using the parseQueryString extension from 
// http://paulgueller.com/2011/04/26/parse-the-querystring-with-jquery/ 
$.extend({ 
    parseQuerystring: function() { 
     var nvpair = {}; 
     var qs = window.location.search.replace('?', ''); 
     var pairs = qs.split('&'); 
     $.each(pairs, function (i, v) { 
      var pair = v.split('='); 
      nvpair[pair[0]] = pair[1]; 
     }); 
     return nvpair; 
    } 
}); 

// Get the index of the section we want to open from the querystring. 
var openAccordionId = parseInt($.parseQuerystring()["openAccordionId"]); 

// Initialise the accordion with the active section defined. 
var accordion = $("#accordion").accordion({ active: openAccordionId }); 

// Note: for some reason, the following does not work: 
// var accordion = $("#accordion").accordion(); 
// accordion.activate(openAccordionId); 
関連する問題