Skip to content

Commit a2a3e2f

Browse files
committed
Selectmenu: Create element in _renderButtonItem method
1 parent 1ff98dd commit a2a3e2f

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

tests/unit/selectmenu/selectmenu_core.js

+5-5
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

+13-7
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,9 @@ return $.widget( "ui.selectmenu", {
104104
})
105105
.prependTo( this.button );
106106

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

112-
this._renderButtonItem( this.buttonItem, item );
113110
this._resizeButton();
114111

115112
this._on( this.button, this._buttonEvents );
@@ -189,7 +186,11 @@ return $.widget( "ui.selectmenu", {
189186

190187
refresh: function() {
191188
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+
);
193194
if ( !this.options.width ) {
194195
this._resizeButton();
195196
}
@@ -271,8 +272,13 @@ return $.widget( "ui.selectmenu", {
271272
return this.menu;
272273
},
273274

274-
_renderButtonItem: function( buttonItem, item ) {
275+
_renderButtonItem: function( item ) {
276+
var buttonItem = $( "<span>", {
277+
"class": "ui-selectmenu-text"
278+
});
275279
this._setText( buttonItem, item.label );
280+
281+
return buttonItem;
276282
},
277283

278284
_renderMenu: function( ul, items ) {
@@ -442,7 +448,7 @@ return $.widget( "ui.selectmenu", {
442448

443449
// Change native select element
444450
this.element[ 0 ].selectedIndex = item.index;
445-
this._renderButtonItem( this.buttonItem, item );
451+
this.buttonItem.replaceWith( this.buttonItem = this._renderButtonItem( item ) );
446452
this._setAria( item );
447453
this._trigger( "select", event, { item: item } );
448454

0 commit comments

Comments
 (0)