aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/widget/widget_core.js26
-rw-r--r--ui/jquery.ui.widget.js9
2 files changed, 34 insertions, 1 deletions
diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js
index 364838e3f..2673350f3 100644
--- a/tests/unit/widget/widget_core.js
+++ b/tests/unit/widget/widget_core.js
@@ -156,6 +156,32 @@ test("merge multiple option arguments", function() {
});
});
+test( "_getCreateOptions()", function() {
+ expect( 1 );
+ $.widget( "ui.testWidget", {
+ options: {
+ option1: "valuex",
+ option2: "valuex",
+ option3: "value3",
+ },
+ _getCreateOptions: function() {
+ return {
+ option1: "override1",
+ option2: "overideX",
+ };
+ },
+ _create: function() {
+ same( this.options, {
+ disabled: false,
+ option1: "override1",
+ option2: "value2",
+ option3: "value3"
+ });
+ }
+ });
+ $( "<div>" ).testWidget({ option2: "value2" });
+});
+
test( "re-init", function() {
var div = $( "<div></div>" ),
actions = [];
diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js
index bc6408125..f41f9637a 100644
--- a/ui/jquery.ui.widget.js
+++ b/ui/jquery.ui.widget.js
@@ -145,7 +145,7 @@ $.Widget.prototype = {
this.element = $( element );
this.options = $.extend( true, {},
this.options,
- $.metadata && $.metadata.get( element )[ this.widgetName ],
+ this._getCreateOptions(),
options );
var self = this;
@@ -157,6 +157,13 @@ $.Widget.prototype = {
this._trigger( "create" );
this._init();
},
+ _getCreateOptions: function() {
+ var options = {};
+ if ( $.metadata ) {
+ options = $.metadata.get( element )[ this.widgetName ];
+ }
+ return options;
+ },
_create: function() {},
_init: function() {},