Skip to content
Permalink
Browse files

Merge branch 'accordion-cleanup'

  • Loading branch information...
jzaefferer committed Mar 18, 2012
2 parents 5c53dd1 + 17db755 commit 6de8030f014eaa298543feea15960848d2f0d029
@@ -10,15 +10,19 @@ test( "destroy", function() {
});

test( "enable/disable", function() {
expect( 3 );
expect( 4 );
var element = $( "#list1" ).accordion();
accordion_state( element, 1, 0, 0 );
element.accordion( "disable" );
element.accordion( "option", "active", 1 );
// event does nothing
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "click" );
accordion_state( element, 1, 0, 0 );
element.accordion( "enable" );
// option still works
element.accordion( "option", "active", 1 );
accordion_state( element, 0, 1, 0 );
element.accordion( "enable" );
element.accordion( "option", "active", 2 );
accordion_state( element, 0, 0, 1 );
});

test( "refresh", function() {
@@ -152,6 +152,7 @@ test( "{ event: custom }", function() {

// ensure old event handlers are unbound
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom1" );
element.find( ".ui-accordion-header" ).eq( 1 ).trigger( "custom2" );
equal( element.accordion( "option", "active" ), 2 );
accordion_state( element, 0, 0, 1 );

@@ -3,7 +3,7 @@ function accordion_state( accordion ) {
var actual = accordion.find( ".ui-accordion-content" ).map(function() {
return $( this ).css( "display" ) === "none" ? 0 : 1;
}).get();
deepEqual( actual, expected );
QUnit.push( QUnit.equiv(actual, expected), actual, expected );
}

function accordion_equalHeights( accordion, min, max ) {
@@ -68,8 +68,6 @@ $.widget( "ui.accordion", {

this.headers
.attr( "role", "tab" )
// TODO: use _bind()
.bind( "keydown.accordion", $.proxy( this, "_keydown" ) )
.next()
.attr( "role", "tabpanel" );

@@ -161,8 +159,7 @@ $.widget( "ui.accordion", {

if ( key === "event" ) {
if ( this.options.event ) {
// TODO: this is incorrect for multiple events (see _setupEvents)
this.headers.unbind( this.options.event + ".accordion", this._eventHandler );
this.headers.unbind( ".accordion" );
}
this._setupEvents( value );
}
@@ -190,8 +187,7 @@ $.widget( "ui.accordion", {
},

_keydown: function( event ) {
// TODO: remove disabled check when using _bind()
if ( this.options.disabled || event.altKey || event.ctrlKey ) {
if ( event.altKey || event.ctrlKey ) {
return;
}

@@ -300,11 +296,15 @@ $.widget( "ui.accordion", {
},

_setupEvents: function( event ) {
var events = {
keydown: "_keydown"
};
if ( event ) {
// TODO: use _bind()
this.headers.bind( event.split( " " ).join( ".accordion " ) + ".accordion",
$.proxy( this, "_eventHandler" ) );
$.each( event.split(" "), function( index, eventName ) {
events[ eventName ] = "_eventHandler";
});
}
this._bind( this.headers, events );
},

_eventHandler: function( event ) {
@@ -324,7 +324,7 @@ $.widget( "ui.accordion", {

event.preventDefault();

if ( options.disabled ||
if (
// click on active header, but not collapsible
( clickedIsActive && !options.collapsible ) ||
// allow canceling activation

0 comments on commit 6de8030

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