Use .children() instead of .find() to manipulate accordion icons. Fixes #4645 - Accordion should only manipulate Icons that are children of ui-accordion-header

This commit is contained in:
jzaefferer 2010-07-15 09:51:20 +02:00
parent 56aecac811
commit 06f721b74f

View File

@ -129,7 +129,7 @@ $.widget("ui.accordion", {
var o = this.options;
if (o.icons) {
$("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
this.active.children(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
this.element.addClass("ui-accordion-icons");
}
},
@ -279,7 +279,7 @@ $.widget("ui.accordion", {
if (!o.collapsible)
return;
this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
.children(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
this.active.next().addClass('ui-accordion-content-active');
var toHide = this.active.next(),
data = {
@ -309,10 +309,10 @@ $.widget("ui.accordion", {
// switch classes
this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
.children(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
if (!clickedIsActive) {
clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
.find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
.children(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
clicked.next().addClass('ui-accordion-content-active');
}