diff --git a/demos/selectmenu/default.html b/demos/selectmenu/default.html
index cbeb627105..c4393b5701 100644
--- a/demos/selectmenu/default.html
+++ b/demos/selectmenu/default.html
@@ -41,7 +41,7 @@
@@ -60,8 +60,8 @@
-
-
+
+
@@ -75,12 +75,12 @@
diff --git a/themes/base/jquery.ui.selectmenu.css b/themes/base/jquery.ui.selectmenu.css
index 2f532d5eeb..d2353e8820 100644
--- a/themes/base/jquery.ui.selectmenu.css
+++ b/themes/base/jquery.ui.selectmenu.css
@@ -12,6 +12,7 @@
.ui-selectmenu-menu .ui-menu { padding: 0; }
.ui-selectmenu-menu .ui-menu .ui-menu-item a { padding: 0.3em 1em 0.3em 1em; }
.ui-selectmenu-menu .ui-menu .ui-menu-item a.ui-state-focus { margin: -1px 0 -1px -1px; }
+.ui-selectmenu-menu .ui-menu li.ui-state-disabled { margin: 0; padding: 0; }
.ui-selectmenu-menu .ui-menu li.ui-selectmenu-optgroup { font-weight: bold; line-height: 1.5; padding: 2px 0.4em; margin: 0.5em 0 0 0; }
.ui-selectmenu-open { display: block; }
diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js
index 4db5f6d569..22f26953ea 100644
--- a/ui/jquery.ui.selectmenu.js
+++ b/ui/jquery.ui.selectmenu.js
@@ -74,7 +74,7 @@ $.widget( "ui.selectmenu", {
})
.addClass( self.widgetBaseClass + '-button' )
.button({
- label: self.items.eq( self.element[ 0 ].selectedIndex ).text(),
+ label: self.items.eq( this.element[0].selectedIndex ).text(),
icons: {
primary: ( options.dropdown ? 'ui-icon-triangle-1-s' : 'ui-icon-triangle-2-n-s' )
}
@@ -128,6 +128,7 @@ $.widget( "ui.selectmenu", {
return ret;
});
+ // built menu
self.refresh();
// document click closes menu
@@ -143,7 +144,8 @@ $.widget( "ui.selectmenu", {
open: function( event ) {
var self = this,
- options = this.options;
+ options = this.options,
+ currentItem = self._getSelectedItem();
// close all other selectmenus
$( '.' + self.widgetBaseClass + '-open' ).not( self.newelement ).each( function() {
@@ -155,9 +157,7 @@ $.widget( "ui.selectmenu", {
.addClass( 'ui-corner-top' )
.removeClass( 'ui-corner-all' );
}
-
- var currentItem = self._getCurrenItem();
-
+
self.listWrap.addClass( self.widgetBaseClass + '-open' );
self.list.focus().menu( "focus", null, currentItem );
@@ -197,7 +197,7 @@ $.widget( "ui.selectmenu", {
self.listWrap = $( options.wrapperElement )
.addClass( self.widgetBaseClass + '-menu' )
- .css("width", ( options.dropdown ) ? self.element.width() : self.element.width() - options.iconWidth)
+ .css( "width", ( options.dropdown ) ? self.element.width() : self.element.width() - options.iconWidth )
.append( self.list )
.appendTo( options.appendTo );
@@ -208,19 +208,12 @@ $.widget( "ui.selectmenu", {
.data( 'element.selectelemenu', self.element )
.menu({
select: function( event, ui ) {
- var item = ui.item.data( "item.selectmenu" );
- console.log(item);
-
- self.newelement.children( 'span.ui-button-text' ).text( item.label );
- self._index( item.index );
+ var item = ui.item.data( "item.selectmenu" );
+ self._setSelected( item );
self.close( event, true);
},
focus: function( event, ui ) {
- var item = ui.item.data( "item.selectmenu" );
- if ( !self.opened ) {
- self.newelement.children( 'span.ui-button-text' ).text( item.label );
- self._index( item.index );
- }
+ if ( !self.opened ) self._setSelected( ui.item.data( "item.selectmenu" );
}
})
.bind( 'mouseenter.selectelemenu', function() {
@@ -259,7 +252,9 @@ $.widget( "ui.selectmenu", {
$.each( items, function( index, item ) {
if ( item.optgroup != currentOptgroup ) {
- ul.append( "