@@ -104,12 +104,9 @@ return $.widget( "ui.selectmenu", {
104
104
} )
105
105
. prependTo ( this . button ) ;
106
106
107
- this . buttonItem = $ ( "<span>" , {
108
- "class" : "ui-selectmenu-text"
109
- } )
107
+ this . buttonItem = this . _renderButtonItem ( item )
110
108
. appendTo ( this . button ) ;
111
109
112
- this . _renderButtonItem ( this . buttonItem , item ) ;
113
110
this . _resizeButton ( ) ;
114
111
115
112
this . _on ( this . button , this . _buttonEvents ) ;
@@ -189,7 +186,11 @@ return $.widget( "ui.selectmenu", {
189
186
190
187
refresh : function ( ) {
191
188
this . _refreshMenu ( ) ;
192
- this . _renderButtonItem ( this . buttonItem , this . _getSelectedItem ( ) . data ( "ui-selectmenu-item" ) ) ;
189
+ this . buttonItem . replaceWith (
190
+ this . buttonItem = this . _renderButtonItem (
191
+ this . _getSelectedItem ( ) . data ( "ui-selectmenu-item" )
192
+ )
193
+ ) ;
193
194
if ( ! this . options . width ) {
194
195
this . _resizeButton ( ) ;
195
196
}
@@ -271,8 +272,13 @@ return $.widget( "ui.selectmenu", {
271
272
return this . menu ;
272
273
} ,
273
274
274
- _renderButtonItem : function ( buttonItem , item ) {
275
+ _renderButtonItem : function ( item ) {
276
+ var buttonItem = $ ( "<span>" , {
277
+ "class" : "ui-selectmenu-text"
278
+ } ) ;
275
279
this . _setText ( buttonItem , item . label ) ;
280
+
281
+ return buttonItem ;
276
282
} ,
277
283
278
284
_renderMenu : function ( ul , items ) {
@@ -442,7 +448,7 @@ return $.widget( "ui.selectmenu", {
442
448
443
449
// Change native select element
444
450
this . element [ 0 ] . selectedIndex = item . index ;
445
- this . _renderButtonItem ( this . buttonItem , item ) ;
451
+ this . buttonItem . replaceWith ( this . buttonItem = this . _renderButtonItem ( item ) ) ;
446
452
this . _setAria ( item ) ;
447
453
this . _trigger ( "select" , event , { item : item } ) ;
448
454
0 commit comments