Skip to content

Commit b8b306d

Browse files
committed
Selectmenu: Create element in _renderButtonItem method
1 parent d4c529d commit b8b306d

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

tests/unit/selectmenu/selectmenu_core.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,19 @@ asyncTest( "accessibility", function() {
4646

4747

4848
test( "extend _renderButtonItem method", function() {
49-
expect( 4 );
49+
expect( 2 );
5050

5151
var links, option,
5252
element = $( "#speed" ).selectmenu(),
5353
instance = element.selectmenu( "instance" ),
5454
button = element.selectmenu( "widget" ),
5555
menu = element.selectmenu( "menuWidget" );
5656

57-
instance._renderButtonItem = function( buttonItem, item ) {
58-
buttonItem.parent().data( "test", item.value );
57+
instance._renderButtonItem = function( item ) {
58+
var buttonItem = $( "<span>" );
5959
this._setText( buttonItem, item.label + item.index );
60+
61+
return buttonItem;
6062
};
6163

6264
element.selectmenu( "refresh" );
@@ -68,7 +70,6 @@ test( "extend _renderButtonItem method", function() {
6870
button.text(),
6971
"refresh: button item text"
7072
);
71-
equal( button.data( "test" ), option.val(), "refresh: button item data" );
7273

7374
button.trigger( "click" );
7475
menu.find( "li" ).last().simulate( "mouseover" ).trigger( "click" );
@@ -78,7 +79,6 @@ test( "extend _renderButtonItem method", function() {
7879
button.text(),
7980
"click: button item text"
8081
);
81-
equal( button.data( "test" ), option.val(), "click: button item data" );
8282
});
8383

8484
$.each([

ui/selectmenu.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,9 @@ return $.widget( "ui.selectmenu", {
103103
})
104104
.prependTo( this.button );
105105

106-
this.buttonItem = $( "<span>", {
107-
"class": "ui-selectmenu-text"
108-
})
106+
this.buttonItem = this._renderButtonItem( item )
109107
.appendTo( this.button );
110108

111-
this._renderButtonItem( this.buttonItem, item );
112109
this._resizeButton();
113110

114111
this._on( this.button, this._buttonEvents );
@@ -194,7 +191,11 @@ return $.widget( "ui.selectmenu", {
194191

195192
refresh: function() {
196193
this._refreshMenu();
197-
this._renderButtonItem( this.buttonItem, this._getSelectedItem().data( "ui-selectmenu-item" ) );
194+
this.buttonItem.replaceWith(
195+
this.buttonItem = this._renderButtonItem(
196+
this._getSelectedItem().data( "ui-selectmenu-item" )
197+
)
198+
);
198199
if ( !this.options.width ) {
199200
this._resizeButton();
200201
}
@@ -279,8 +280,13 @@ return $.widget( "ui.selectmenu", {
279280
return this.menu;
280281
},
281282

282-
_renderButtonItem: function( buttonItem, item ) {
283+
_renderButtonItem: function( item ) {
284+
var buttonItem = $( "<span>", {
285+
"class": "ui-selectmenu-text"
286+
});
283287
this._setText( buttonItem, item.label );
288+
289+
return buttonItem;
284290
},
285291

286292
_renderMenu: function( ul, items ) {
@@ -488,7 +494,7 @@ return $.widget( "ui.selectmenu", {
488494

489495
// Change native select element
490496
this.element[ 0 ].selectedIndex = item.index;
491-
this._renderButtonItem( this.buttonItem, item );
497+
this.buttonItem.replaceWith( this.buttonItem = this._renderButtonItem( item ) );
492498
this._setAria( item );
493499
this._trigger( "select", event, { item: item } );
494500

0 commit comments

Comments
 (0)