aboutsummaryrefslogtreecommitdiffstats
path: root/ui/widgets/selectmenu.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/widgets/selectmenu.js')
-rw-r--r--ui/widgets/selectmenu.js24
1 files changed, 14 insertions, 10 deletions
diff --git a/ui/widgets/selectmenu.js b/ui/widgets/selectmenu.js
index 30d8c71af..b251f04f1 100644
--- a/ui/widgets/selectmenu.js
+++ b/ui/widgets/selectmenu.js
@@ -12,9 +12,9 @@
//>>description: Duplicates and extends the functionality of a native HTML select element, allowing it to be customizable in behavior and appearance far beyond the limitations of a native select.
//>>docs: http://api.jqueryui.com/selectmenu/
//>>demos: http://jqueryui.com/selectmenu/
-//>>css.structure: ../themes/base/core.css
-//>>css.structure: ../themes/base/selectmenu.css
-//>>css.theme: ../themes/base/theme.css
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/selectmenu.css, ../../themes/base/button.css
+//>>css.theme: ../../themes/base/theme.css
( function( factory ) {
if ( typeof define === "function" && define.amd ) {
@@ -24,6 +24,7 @@
"jquery",
"./menu",
"../escape-selector",
+ "../form-reset-mixin",
"../keycode",
"../labels",
"../position",
@@ -38,7 +39,7 @@
}
}( function( $ ) {
-return $.widget( "ui.selectmenu", {
+return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
version: "@VERSION",
defaultElement: "<select>",
options: {
@@ -76,13 +77,14 @@ return $.widget( "ui.selectmenu", {
this._drawButton();
this._drawMenu();
+ this._bindFormResetHandler();
this._rendered = false;
this.menuItems = $();
},
_drawButton: function() {
- var icon,
+ var icon, space,
that = this,
item = this._parseOption(
this.element.find( "option:selected" ),
@@ -115,10 +117,13 @@ return $.widget( "ui.selectmenu", {
.insertAfter( this.element );
this._addClass( this.button, "ui-selectmenu-button ui-selectmenu-button-closed",
- "ui-widget ui-state-default" );
+ "ui-button ui-widget" );
icon = $( "<span>" ).prependTo( this.button );
+ space = $( "<span> </span>" );
+ this._addClass( space, "ui-selectmenu-icon-space" );
this._addClass( icon, null, "ui-icon " + this.options.icons.button );
+ icon.after( space );
this.buttonItem = this._renderButtonItem( item )
.appendTo( this.button );
@@ -136,8 +141,6 @@ return $.widget( "ui.selectmenu", {
that._refreshMenu();
}
} );
- this._hoverable( this.button );
- this._focusable( this.button );
},
_drawMenu: function() {
@@ -606,7 +609,7 @@ return $.widget( "ui.selectmenu", {
// we always remove classes first and add them second, otherwise if both classes have the
// same theme class, it will be removed after we add it.
this._removeClass( this.button, "ui-selectmenu-button-" +
- ( this.isOpen ? "closed" : "open" ) )
+ ( this.isOpen ? "closed" : "open" ) )
._addClass( this.button, "ui-selectmenu-button-" +
( this.isOpen ? "open" : "closed" ) )
._toggleClass( this.menuWrap, "ui-selectmenu-open", null, this.isOpen );
@@ -674,12 +677,13 @@ return $.widget( "ui.selectmenu", {
},
_destroy: function() {
+ this._unbindFormResetHandler();
this.menuWrap.remove();
this.button.remove();
this.element.show();
this.element.removeUniqueId();
this.labels.attr( "for", this.ids.element );
}
-} );
+} ] );
} ) );