現在表示中のページに応じて、jQuery UI Accordionメニューの正しいコンテンツ部分を動的にアクティブにする方法を理解しようとしています。私は広範囲に調査しましたが、これまで他の人たちがこれに問題を抱えていたようですが、私にとってはうまくいく解決策はまだ見つかりませんでした。私はactive
がメニューの特定のインデックスを開くように設定できることを知っていますが、私はこれを動的に行う必要があります。jQuery UIアコーディオンメニューで現在のコンテンツパートを有効にする
私はactivate
メソッドを使って欲しいものを達成できると思っています。私はそれを理解できないようです。私は、通常はバック/フォワードボタンや特定のURLを介した直接のナビゲーションでは機能しないので、クッキーを設定しないようにしたいと思います。誰にでもアイデアはありますか?前もって感謝します!ここで
は私のメニューの簡易な構造である:
<div id="menu">
<div id="sections">
<div class="grouping accordion">
<a id="heading1" href="#">Heading #1</a>
<div class="sub-items">
<a href="/item1">Item #1</a>
<br />
<a href="/item2">Item #2</a>
</div>
</div>
<div class="grouping accordion">
<a id="heading2" href="#">Heading #2</a>
<div class="sub-items">
<a href="/item4">Item #4</a>
<br />
<a href="/item5">Item #6</a>
</div>
</div>
</div>
</div>
そしてここでは、私のjQueryのアコーディオンのinitです:
$('#sections').accordion({
header: '> .accordion > a',
autoHeight: false,
collapsible: true,
active: false,
animated: 'slide'
});
ですから、たとえば/item4
ページに現在ある場合、グループの下で見出し#2を展開する必要があります。
EDIT: 私はかなり良い解決策になると思われるもの発見し、以下の答えとして、うまくいけば、これは同様の問題を持つ人を助けることを掲載!
より良い方法は、選択されたli要素に "selected"クラスを使用してサーバー上にHTMLを生成することです。サーバーは選択されたページを返すので、この情報を知る必要があります。これは、window.location.href(エラーが発生しやすい)の解析を取り除きます。ここに限られたスペースが与えられているので、残りの提案を答えに入れておきます。 – Alkaline