为了得到手风琴自动打开基于URL的正确部分,你会开始使navigation
选项的东西,如:
$('#accordion').accordion('option', 'navigation', true);
默认情况下,此选项查找具有该URL fragme相匹配的href
手风琴标题链接nt(如果您的URL是http://somesite.com/about#contact,#contact是片段)并打开该标题链接的部分。由于您使用的手风琴导航到不同的页面,你可能不会有URL片段来匹配,所以你必须编写自定义navigationFilter
:
$('#accordion').accordion('option', 'navigationFilter', function(){ ... });
可以使用navigationFilter
选项覆盖手风琴插件如何匹配当前页面的URL的标题链接。
到目前为止,我们已经根据当前页面打开了手风琴的右侧部分。接下来,我们需要突出显示该部分对应于该页面的链接。你会做的东西,如:
<script type="text/javascript">
$(document).ready(function() {
$('#accordion li').each(function() {
var li = $(this);
var a = $('a', li);
if(/* compare the href of the 'a' element to the current URL */) {
li.addClass('active');
}
});
});
</script>
<div id="accordion">
<h3><a href="#">Section 1</a></h3>
<div>
<ul>
<li><a href="/about">About</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</div>
<h3><a href="#">Section 2</a></h3>
<div>
<ul>
<li><a href="/help">Help</a></li>
<li><a href="/faq">FAQ</a></li>
</ul>
</div>
</div>
在这里,我们正在经历导航手风琴的所有网页链接,采摘,当前URL匹配的一个,并应用.active
类吧,你然后可以使用不同的CSS样式。
旁白:另一个,可能会更好,方式来完成第二部分是建立与已经应用到合适的链接.active
类的页面,但假定你可以控制后台和你知道该怎么做。事实上,如果是这样的话,您可以跳过整个navigationFilter
的东西,并生成一个<script>
块来设置手风琴上的active
选项以打开正确的部分。
如果你使用这里描述的哈希改变方法,下面的插件是不匹配的:http://benalman.com/projects/jquery-bbq-plugin/ - 它很快将取代jQuery历史插件,这是非常过时的。 – 2009-10-21 19:45:24
@亚历山大 - 不错!并没有意识到这一点。 – Matt 2009-10-21 19:51:34
感谢您的信息 - 我会看看,如果我能得到它与您的解决方案或从没有惊喜(上图) - 手指交叉工作! – MelissaTA 2009-10-23 17:49:24