我想知道如何根據當前正在查看的頁面動態激活jQuery UI Accordion菜單的正確內容部分。我已經進行了大量搜索,過去似乎其他人也遇到過這方面的問題,但我還沒有找到適合我的解決方案。我知道active
可以設置爲打開菜單的某個索引,但我需要動態地執行此操作。激活jQuery UI手風琴菜單中的當前內容部分
我在想我可以使用activate
方法實現我想要的,我似乎無法弄清楚。我想遠離設置Cookie,因爲通常不會使用後退/前進按鈕以及通過特定網址直接導航。有人有主意嗎?提前致謝!
這裏是我的菜單的簡化結構:
<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手風琴初始化:
$('#sections').accordion({
header: '> .accordion > a',
autoHeight: false,
collapsible: true,
active: false,
animated: 'slide'
});
所以,如果你目前/item4
頁例如上,下組標題#2應該擴大。
編輯: 我發現什麼似乎是一個很好的解決方案,併發布作爲下面的答案,希望這會幫助有類似問題的人!
更好的方法是在選定的li元素上使用「selected」類生成服務器上的HTML。服務器必須知道此信息,因爲它正在返回所選頁面。這擺脫瞭解析window.location.href(容易出錯)。我將把我的建議的其餘部分放在答案中,因爲我們在這裏給予的空間有限。 – Alkaline 2013-04-08 05:05:39