diff options
author | Scott González <scott.gonzalez@gmail.com> | 2013-05-20 11:30:49 -0400 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2013-05-20 11:30:49 -0400 |
commit | 2eb89f07341a557084fa3363fe22afe62530654d (patch) | |
tree | a6bc0b09a6c98d026d53a84f86203d77b72b0349 | |
parent | 9726cd72b64e9e9735cfdb5564ebef64a6dab0aa (diff) | |
download | jquery-ui-2eb89f07341a557084fa3363fe22afe62530654d.tar.gz jquery-ui-2eb89f07341a557084fa3363fe22afe62530654d.zip |
Widget: Properly set widgetEventPrefix when redefining a widget. Fixes #9316 - Widget: widgetEventPrefix is empty when widget is (occasionally) loaded twice.
-rw-r--r-- | tests/unit/widget/widget_core.js | 10 | ||||
-rw-r--r-- | ui/jquery.ui.widget.js | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/tests/unit/widget/widget_core.js b/tests/unit/widget/widget_core.js index 0d97742ff..3268b756d 100644 --- a/tests/unit/widget/widget_core.js +++ b/tests/unit/widget/widget_core.js @@ -331,6 +331,16 @@ test( "re-init", function() { deepEqual( actions, [ "optionfoo", "init" ], "correct methods called on re-init with options" ); }); +test( "redeclare", function() { + expect( 2 ); + + $.widget( "ui.testWidget", {} ); + equal( $.ui.testWidget.prototype.widgetEventPrefix, "testWidget" ); + + $.widget( "ui.testWidget", {} ); + equal( $.ui.testWidget.prototype.widgetEventPrefix, "testWidget" ); +}); + test( "inheritance", function() { expect( 6 ); // #5830 - Widget: Using inheritance overwrites the base classes options diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index 741ac74d7..9fc0136c4 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -106,7 +106,7 @@ $.widget = function( name, base, prototype ) { // TODO: remove support for widgetEventPrefix // always use the name + a colon as the prefix, e.g., draggable:start // don't prefix for widgets that aren't DOM-based - widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name }, proxiedPrototype, { constructor: constructor, namespace: namespace, |