【发布时间】:2016-11-10 02:31:21
【问题描述】:
我有一个链接/日期的手风琴(档案)。当用户单击一个时,我试图让手风琴展开到当前选定的链接。为此,我在手风琴中搜索与当前 URL 匹配的链接,然后希望将手风琴展开到该链接。
HTML
<div class="desktop">
<div id="blog-archive-accordion">
<h3 id="archive" class="title">Archive</h3>
<div id="blog-archive-accordion-year">
<h4>2016</h4>
<ul>
<li class="month">November (0)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=10">October</a> (5)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=9">September</a> (11)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=8">August</a> (8)</li>
....
</ul>
<h4>2015</h4>
<ul>
<li class="month">November (0)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=10">October</a> (5)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=9">September</a> (11)</li>
<li class="month"><a class="current-archive-link" href="/website/archive?filter[year]=2016&filter[month]=8">August</a> (8)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=7">July</a> (9)</li>
....
</ul>
<h4>2014</h4>
<ul>
<li class="month">November (0)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=10">October</a> (5)</li>
<li class="month"><a class="" href="/website/archive?filter[year]=2016&filter[month]=9">September</a> (11)</li>
....
</ul>
</div>
</div>
</div>
Javascript
// Accordionize the above structure.
$(function() {
$("#blog-archive-accordion").accordion({ header: "h3" });
$("#blog-archive-accordion-year").accordion({ header: "h4" });
});
// Find the current url in the accordion links (obv. doesn't work like this in JSFiddle)
//var selectedArchiveLink = $('#blog-archive-accordion').find("a[href='" + location.pathname + location.search +"']").parent();
var selectedArchiveLink = $('#blog-archive-accordion').find(".current-archive-link").parent();
if(selectedArchiveLink.length > 0){
selectedArchiveLink.addClass("current-archive-link"); // Style the current link
// How do I know where the found link was?
$('#blog-archive-accordion-year').accordion('option', 'active', 1);
}
在上面的例子中,我用.accordion('option', 'active', 1); 强制手风琴操作,但我想知道如何找到找到的链接的索引。考虑到手风琴中的索引是基于标题标签而不是手风琴中的实际索引。
IE:
<h4></h4>
<ul></ul>
<div></div>
<h4></h4>
<div></div>
会在两个 <h4> 标记上折叠,第二个的索引是 3 而不是 1,就像你需要这个 .accordion() 函数一样。
【问题讨论】:
标签: javascript jquery jquery-ui accordion