@@ -31,6 +31,15 @@ return $.widget( "ui.selectmenu", {
31
31
defaultElement : "<select>" ,
32
32
options : {
33
33
appendTo : null ,
34
+ classes : {
35
+ "ui-selectmenu-button" : "" ,
36
+ "ui-selectmenu-button-open" : "ui-corner-top" ,
37
+ "ui-selectmenu-button-closed" : "ui-corner-all" ,
38
+ "ui-selectmenu-text" : null ,
39
+ "ui-selectmenu-menu" : null ,
40
+ "ui-selectmenu-optgroup" : null ,
41
+ "ui-selectmenu-open" : null
42
+ } ,
34
43
disabled : null ,
35
44
icons : {
36
45
button : "ui-icon-triangle-1-s"
@@ -87,7 +96,7 @@ return $.widget( "ui.selectmenu", {
87
96
88
97
// Create button
89
98
this . button = $ ( "<span>" , {
90
- "class" : "ui-selectmenu-button ui-widget ui-state-default ui-corner-all " ,
99
+ "class" : this . _classes ( "ui-selectmenu-button ui-selectmenu-button-closed" ) + " ui-widget ui-state-default ",
91
100
tabindex : this . options . disabled ? - 1 : 0 ,
92
101
id : this . ids . button ,
93
102
role : "combobox" ,
@@ -134,14 +143,18 @@ return $.widget( "ui.selectmenu", {
134
143
135
144
// Wrap menu
136
145
this . menuWrap = $ ( "<div>" , {
137
- "class" : "ui-selectmenu-menu ui-front"
146
+ "class" : this . _classes ( "ui-selectmenu-menu" ) + " ui-front"
138
147
} )
139
148
. append ( this . menu )
140
149
. appendTo ( this . _appendTo ( ) ) ;
141
150
142
151
// Initialize menu widget
143
152
this . menuInstance = this . menu
144
153
. menu ( {
154
+ // Adjust menu styles to dropdown
155
+ classes : {
156
+ "ui-menu" : "ui-corner-bottom"
157
+ } ,
145
158
role : "listbox" ,
146
159
select : function ( event , ui ) {
147
160
event . preventDefault ( ) ;
@@ -171,11 +184,6 @@ return $.widget( "ui.selectmenu", {
171
184
} )
172
185
. menu ( "instance" ) ;
173
186
174
- // Adjust menu styles to dropdown
175
- this . menu
176
- . addClass ( "ui-corner-bottom" )
177
- . removeClass ( "ui-corner-all" ) ;
178
-
179
187
// Don't close the menu on mouseleave
180
188
this . menuInstance . _off ( this . menu , "mouseleave" ) ;
181
189
@@ -283,7 +291,7 @@ return $.widget( "ui.selectmenu", {
283
291
284
292
_renderButtonItem : function ( item ) {
285
293
var buttonItem = $ ( "<span>" , {
286
- "class" : "ui-selectmenu-text"
294
+ "class" : this . _classes ( "ui-selectmenu-text" )
287
295
} ) ;
288
296
this . _setText ( buttonItem , item . label ) ;
289
297
@@ -297,7 +305,7 @@ return $.widget( "ui.selectmenu", {
297
305
$ . each ( items , function ( index , item ) {
298
306
if ( item . optgroup !== currentOptgroup ) {
299
307
$ ( "<li>" , {
300
- "class" : "ui-selectmenu-optgroup ui-menu-divider" +
308
+ "class" : that . _classes ( "ui-selectmenu-optgroup" ) + " ui-menu-divider" +
301
309
( item . element . parent ( "optgroup" ) . prop ( "disabled" ) ?
302
310
" ui-state-disabled" :
303
311
"" ) ,
@@ -573,10 +581,10 @@ return $.widget( "ui.selectmenu", {
573
581
574
582
_toggleAttr : function ( ) {
575
583
this . button
576
- . toggleClass ( "ui-corner-top" , this . isOpen )
577
- . toggleClass ( "ui-corner-all" , ! this . isOpen )
584
+ . toggleClass ( this . _classes ( "ui-selectmenu-button-open" ) , this . isOpen )
585
+ . toggleClass ( this . _classes ( "ui-selectmenu-button-closed" ) , ! this . isOpen )
578
586
. attr ( "aria-expanded" , this . isOpen ) ;
579
- this . menuWrap . toggleClass ( "ui-selectmenu-open" , this . isOpen ) ;
587
+ this . menuWrap . toggleClass ( this . _classes ( "ui-selectmenu-open" ) , this . isOpen ) ;
580
588
this . menu . attr ( "aria-hidden" , ! this . isOpen ) ;
581
589
} ,
582
590
0 commit comments