@@ -119,11 +119,10 @@ return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
119119 this . _addClass ( this . button , "ui-selectmenu-button ui-selectmenu-button-closed" ,
120120 "ui-button ui-widget" ) ;
121121
122- this . buttonItem = this . _renderButtonItem ( item )
123- . appendTo ( this . button ) ;
122+ this . setButtonText ( item ) ;
124123
125- icon = $ ( "<span>" ) . appendTo ( this . button ) ;
126- this . _addClass ( icon , "ui-selectmenu-icon" , "ui-icon " + this . options . icons . button ) ;
124+ this . icon = $ ( "<span>" ) . prependTo ( this . button ) ;
125+ this . _addClass ( this . icon , "ui-selectmenu-icon" , "ui-icon " + this . options . icons . button ) ;
127126
128127 if ( this . options . width !== false ) {
129128 this . _resizeButton ( ) ;
@@ -206,13 +205,8 @@ return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
206205
207206 refresh : function ( ) {
208207 this . _refreshMenu ( ) ;
209- this . buttonItem . replaceWith (
210- this . buttonItem = this . _renderButtonItem (
208+ this . setButtonText ( this . _getSelectedItem ( ) . data ( "ui-selectmenu-item" ) || { } ) ;
211209
212- // Fall back to an empty object in case there are no options
213- this . _getSelectedItem ( ) . data ( "ui-selectmenu-item" ) || { }
214- )
215- ) ;
216210 if ( this . options . width === null ) {
217211 this . _resizeButton ( ) ;
218212 }
@@ -308,7 +302,6 @@ return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
308302 var buttonItem = $ ( "<span>" ) ;
309303
310304 this . _setText ( buttonItem , item . label ) ;
311- this . _addClass ( buttonItem , "ui-selectmenu-text" ) ;
312305
313306 return buttonItem ;
314307 } ,
@@ -519,12 +512,19 @@ return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
519512 }
520513 } ,
521514
515+ setButtonText : function ( item ) {
516+ this . _setText ( this . button , item . label ) ;
517+ if ( this . icon ) {
518+ this . button . prepend ( this . icon ) ;
519+ }
520+ } ,
521+
522522 _select : function ( item , event ) {
523523 var oldIndex = this . element [ 0 ] . selectedIndex ;
524524
525525 // Change native select element
526526 this . element [ 0 ] . selectedIndex = item . index ;
527- this . buttonItem . replaceWith ( this . buttonItem = this . _renderButtonItem ( item ) ) ;
527+ this . setButtonText ( item ) ;
528528 this . _setAria ( item ) ;
529529 this . _trigger ( "select" , event , { item : item } ) ;
530530
0 commit comments