Skip to content
Permalink
Browse files

Accordion: Always have _activate delegate to _eventHandler.

  • Loading branch information
scottgonzalez committed Feb 5, 2011
1 parent ed57047 commit e2560f654e6f427768089cbb41673c2e9a82145f
Showing with 10 additions and 35 deletions.
  1. +10 −35 ui/jquery.ui.accordion.js
@@ -262,46 +262,21 @@ $.widget( "ui.accordion", {
},

_activate: function( index ) {
var active = this._findActive( index )[ 0 ],
eventData = {
oldHeader: this.active,
oldContent: this.active.next(),
newHeader: $(),
newContent: $()
};

// we found a header to activate, just delegate to the event handler
if ( active ) {
if ( active !== this.active[ 0 ] ) {
this._eventHandler({
target: active,
currentTarget: active,
preventDefault: $.noop
});
}
return;
}
var active = this._findActive( index )[ 0 ];

// no header to activate, check if we can collapse
if ( !this.options.collapsible ) {
// trying to activate the already active panel
if ( active === this.active[ 0 ] ) {
return;
}

// allow the activation to be canceled
if ( this._trigger( "beforeActivate", null, eventData ) === false ) {
return;
}
// trying to collapse, simulate a click on the currently active header
active = active || this.active;

this.active
.removeClass( "ui-state-active ui-corner-top" )
.addClass( "ui-state-default ui-corner-all" )
.children( ".ui-accordion-header-icon" )
.removeClass( this.options.icons.activeHeader )
.addClass( this.options.icons.header );
this.active.next().addClass( "ui-accordion-content-active" );
this.options.active = false;
this.active = $();
this._toggle( eventData );
this._eventHandler({
target: active,
currentTarget: active,
preventDefault: $.noop
});
},

_findActive: function( selector ) {

0 comments on commit e2560f6

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