Search and Top Navigation
#4959 closed bug (fixed)
Opened November 16, 2009 05:26AM UTC
Closed July 13, 2010 01:02PM UTC
accordion navigation failed to find header from a deeply located element
| Reported by: | hoball | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | 1.8.2 |
| Component: | ui.accordion | Version: | 1.7.2 |
| Keywords: | navigation, parent, level | Cc: | |
| Blocked by: | Blocking: |
Description
Currently the code for the option "navigation" inside ui.accordion.js is:
if ( o.navigation ) {
var current = this.element.find("a").filter(o.navigationFilter);
if ( current.length ) {
if ( current.filter(o.header).length ) {
this.active = current;
} else {
this.active = current.parent().parent().prev();
current.addClass("ui-accordion-content-active");
}
}
}
This block of code is fixed to search 2 levels up for the header.
In my navigation menu, I am using more than 2 levels and this results a failure to make "navigation: true" works.
I have to manually fix it by adding one more parent().
Perhaps we may use the parents() method to make it more flexible.
$(document).ready(function() {
$("#accordion").accordion({
active: false,
header: 'h3',
collapsible: true,
navigation: true
});
});
<div id="accordion"><!-- START ACCORDION -->
<h3><a href="#">Header</a></h3>
<div>
<h4>Subheader A</h4>
<ul>
<li><a href="sub-a-1.html">Link SubA 1</a><</li>
<li><a href="sub-a-2.html">Link SubA 2</a><</li>
</ul>
<h4>Subheader B</h4>
<ul>
<li><a href="sub-b-1.html">Link SubB 1</a><</li>
<li><a href="sub-b-2.html">Link SubB 1</a><</li>
</ul>
</div>
<!-- // more main headers -->
<h3></h3>
<div></div>
</div><!-- END ACCORDION -->