アコーディオンAPIのドキュメントはそれほど簡単に理解できるわけではなく、activate()
関数が宣伝どおりに機能していないように見えるため、これは見た目よりも少し注意が必要です。
あなたの質問から、divIDを参照してアコーディオンセクションを開きたいようです。これはそのままでは不可能です。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);