Widget: Added create event. Fixes #6126 - Widget: Add create event.

This commit is contained in:
Scott González 2010-09-29 17:36:45 -07:00
parent 99b71a51c8
commit a2ddfd5107
2 changed files with 15 additions and 10 deletions

View File

@ -27,14 +27,14 @@ test( "widget creation", function() {
}); });
test( "jQuery usage", function() { test( "jQuery usage", function() {
expect( 10 ); expect( 11 );
var shouldInit = false; var shouldCreate = false;
$.widget( "ui.testWidget", { $.widget( "ui.testWidget", {
getterSetterVal: 5, getterSetterVal: 5,
_create: function() { _create: function() {
ok( shouldInit, "init called on instantiation" ); ok( shouldCreate, "create called on instantiation" );
}, },
methodWithParams: function( param1, param2 ) { methodWithParams: function( param1, param2 ) {
ok( true, "method called via .pluginName(methodName)" ); ok( true, "method called via .pluginName(methodName)" );
@ -54,9 +54,13 @@ test( "jQuery usage", function() {
} }
}); });
shouldInit = true; shouldCreate = true;
var elem = $( "<div></div>" ).testWidget(); var elem = $( "<div></div>" )
shouldInit = false; .bind( "testwidgetcreate", function() {
ok( shouldCreate, "create event triggered on instantiation" );
})
.testWidget();
shouldCreate = false;
var instance = elem.data( "testWidget" ); var instance = elem.data( "testWidget" );
equals( typeof instance, "object", "instance stored in .data(pluginName)" ); equals( typeof instance, "object", "instance stored in .data(pluginName)" );
@ -74,12 +78,12 @@ test( "jQuery usage", function() {
test( "direct usage", function() { test( "direct usage", function() {
expect( 9 ); expect( 9 );
var shouldInit = false; var shouldCreate = false;
$.widget( "ui.testWidget", { $.widget( "ui.testWidget", {
getterSetterVal: 5, getterSetterVal: 5,
_create: function() { _create: function() {
ok( shouldInit, "init called on instantiation" ); ok( shouldCreate, "create called on instantiation" );
}, },
methodWithParams: function( param1, param2 ) { methodWithParams: function( param1, param2 ) {
ok( true, "method called dirctly" ); ok( true, "method called dirctly" );
@ -99,9 +103,9 @@ test( "direct usage", function() {
var elem = $( "<div></div>" )[ 0 ]; var elem = $( "<div></div>" )[ 0 ];
shouldInit = true; shouldCreate = true;
var instance = new $.ui.testWidget( {}, elem ); var instance = new $.ui.testWidget( {}, elem );
shouldInit = false; shouldCreate = false;
equals( $( elem ).data( "testWidget" ), instance, equals( $( elem ).data( "testWidget" ), instance,
"instance stored in .data(pluginName)" ); "instance stored in .data(pluginName)" );

View File

@ -154,6 +154,7 @@ $.Widget.prototype = {
}); });
this._create(); this._create();
this._trigger( "create" );
this._init(); this._init();
}, },
_create: function() {}, _create: function() {},