Skip to content
Permalink
Browse files

Accordion: Properly handle collapsible: false and active: false by ch…

…anging active to 0.
  • Loading branch information
scottgonzalez committed Feb 3, 2011
1 parent 39cf7d5 commit 714a77f202ee02b894992722d2e6b35b4089557e
Showing with 20 additions and 11 deletions.
  1. +10 −11 tests/unit/accordion/accordion_options.js
  2. +10 −0 ui/jquery.ui.accordion.js
@@ -17,17 +17,16 @@ test( "{ active: false }", function() {
equals( ac.find( ".ui-accordion-header.ui-state-active" ).size(), 0, "no headers selected" );
equals( ac.accordion( "option", "active" ), false );

// TODO: fix active: false when not collapsible
// ac.accordion( "option", "collapsible", false );
// state( ac, 1, 0, 0 );
// equals( ac.accordion( "option", "active" ), 0 );
//
// ac.accordion( "destroy" );
// ac.accordion({
// active: false
// });
// state( ac, 1, 0, 0 );
// strictEqual( ac.accordion( "option", "active" ), 0 );
ac.accordion( "option", "collapsible", false );
state( ac, 1, 0, 0 );
equals( ac.accordion( "option", "active" ), 0 );

ac.accordion( "destroy" );
ac.accordion({
active: false
});
state( ac, 1, 0, 0 );
strictEqual( ac.accordion( "option", "active" ), 0 );
});

test( "{ active: Number }", function() {
@@ -44,6 +44,10 @@ $.widget( "ui.accordion", {
self.headers.next()
.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );

// don't allow collapsible: false and active: false
if ( !options.collapsible && options.active === false ) {
options.active = 0;
}
self.active = self._findActive( options.active )
.addClass( "ui-state-default ui-state-active" )
.toggleClass( "ui-corner-all" )
@@ -149,12 +153,18 @@ $.widget( "ui.accordion", {

this._super( "_setOption", key, value );

// setting collapsible: false while collapsed; open first panel
if ( key === "collapsible" && !value && this.options.active === false ) {
this._activate( 0 );
}

if ( key === "icons" ) {
this._destroyIcons();
if ( value ) {
this._createIcons();
}
}

// #5332 - opacity doesn't cascade to positioned elements in IE
// so we need to add the disabled class to the headers and panels
if ( key === "disabled" ) {

0 comments on commit 714a77f

Please sign in to comment.
You can’t perform that action at this time.