aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2012-01-31 11:46:31 -0500
committerScott González <scott.gonzalez@gmail.com>2012-01-31 11:46:31 -0500
commit3919256abd7b91dcc8437c245f98d623103f97e0 (patch)
treee9c65fa29c35e9a5f97a5f85a80858cc30d46ba7
parentecddf469d7924d88d72e57a4806996fc50fa50ae (diff)
downloadjquery-ui-3919256abd7b91dcc8437c245f98d623103f97e0.tar.gz
jquery-ui-3919256abd7b91dcc8437c245f98d623103f97e0.zip
Accordion: Pass header and content in create event. Fixes #7869 - Accordion: Provide header and content details in create event.
-rw-r--r--tests/unit/accordion/accordion_events.js39
-rw-r--r--ui/jquery.ui.accordion.js7
2 files changed, 46 insertions, 0 deletions
diff --git a/tests/unit/accordion/accordion_events.js b/tests/unit/accordion/accordion_events.js
index 12acf2a44..b5c3ea228 100644
--- a/tests/unit/accordion/accordion_events.js
+++ b/tests/unit/accordion/accordion_events.js
@@ -2,6 +2,45 @@
module( "accordion: events", accordion_setupTeardown() );
+test( "create", function() {
+ expect( 10 );
+
+ var element = $( "#list1" ),
+ headers = element.children( "h3" ),
+ contents = headers.next();
+
+ element.accordion({
+ create: function( event, ui ) {
+ equals( ui.header.size(), 1, "header size" );
+ strictEqual( ui.header[ 0 ], headers[ 0 ], "header" );
+ equals( ui.content.size(), 1, "content size" );
+ strictEqual( ui.content[ 0 ], contents[ 0 ], "content" );
+ }
+ });
+ element.accordion( "destroy" );
+
+ element.accordion({
+ active: 2,
+ create: function( event, ui ) {
+ equals( ui.header.size(), 1, "header size" );
+ strictEqual( ui.header[ 0 ], headers[ 2 ], "header" );
+ equals( ui.content.size(), 1, "content size" );
+ strictEqual( ui.content[ 0 ], contents[ 2 ], "content" );
+ }
+ });
+ element.accordion( "destroy" );
+
+ element.accordion({
+ active: false,
+ collapsible: true,
+ create: function( event, ui ) {
+ equals( ui.header.size(), 0, "header size" );
+ equals( ui.content.size(), 0, "content size" );
+ }
+ });
+ element.accordion( "destroy" );
+});
+
test( "beforeActivate", function() {
expect( 38 );
var element = $( "#list1" ).accordion({
diff --git a/ui/jquery.ui.accordion.js b/ui/jquery.ui.accordion.js
index a019ca127..97549cb10 100644
--- a/ui/jquery.ui.accordion.js
+++ b/ui/jquery.ui.accordion.js
@@ -103,6 +103,13 @@ $.widget( "ui.accordion", {
this._setupEvents( options.event );
},
+ _getCreateEventData: function() {
+ return {
+ header: this.active,
+ content: !this.active.length ? $() : this.active.next()
+ };
+ },
+
_createIcons: function() {
var icons = this.options.icons;
if ( icons ) {