@@ -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"
@@ -84,7 +93,7 @@ return $.widget( "ui.selectmenu", {
84
93
85
94
// Create button
86
95
this . button = $ ( "<span>" , {
87
- "class" : "ui-selectmenu-button ui-widget ui-state-default ui-corner-all " ,
96
+ "class" : this . _classes ( "ui-selectmenu-button ui-selectmenu-button-closed" ) + " ui-widget ui-state-default ",
88
97
tabindex : tabindex || this . options . disabled ? - 1 : 0 ,
89
98
id : this . ids . button ,
90
99
role : "combobox" ,
@@ -101,7 +110,7 @@ return $.widget( "ui.selectmenu", {
101
110
. prependTo ( this . button ) ;
102
111
103
112
this . buttonText = $ ( "<span>" , {
104
- "class" : "ui-selectmenu-text"
113
+ "class" : this . _classes ( "ui-selectmenu-text" )
105
114
} )
106
115
. appendTo ( this . button ) ;
107
116
@@ -133,14 +142,18 @@ return $.widget( "ui.selectmenu", {
133
142
134
143
// Wrap menu
135
144
this . menuWrap = $ ( "<div>" , {
136
- "class" : "ui-selectmenu-menu ui-front"
145
+ "class" : this . _classes ( "ui-selectmenu-menu" ) + " ui-front"
137
146
} )
138
147
. append ( this . menu )
139
148
. appendTo ( this . _appendTo ( ) ) ;
140
149
141
150
// Initialize menu widget
142
151
this . menuInstance = this . menu
143
152
. menu ( {
153
+ // Adjust menu styles to dropdown
154
+ classes : {
155
+ "ui-menu" : "ui-corner-bottom"
156
+ } ,
144
157
role : "listbox" ,
145
158
select : function ( event , ui ) {
146
159
event . preventDefault ( ) ;
@@ -164,11 +177,6 @@ return $.widget( "ui.selectmenu", {
164
177
} )
165
178
. menu ( "instance" ) ;
166
179
167
- // Adjust menu styles to dropdown
168
- this . menu
169
- . addClass ( "ui-corner-bottom" )
170
- . removeClass ( "ui-corner-all" ) ;
171
-
172
180
// Don't close the menu on mouseleave
173
181
this . menuInstance . _off ( this . menu , "mouseleave" ) ;
174
182
@@ -274,7 +282,7 @@ return $.widget( "ui.selectmenu", {
274
282
$ . each ( items , function ( index , item ) {
275
283
if ( item . optgroup !== currentOptgroup ) {
276
284
$ ( "<li>" , {
277
- "class" : "ui-selectmenu-optgroup ui-menu-divider" +
285
+ "class" : that . _classes ( "ui-selectmenu-optgroup" ) + " ui-menu-divider" +
278
286
( item . element . parent ( "optgroup" ) . prop ( "disabled" ) ?
279
287
" ui-state-disabled" :
280
288
"" ) ,
@@ -510,10 +518,10 @@ return $.widget( "ui.selectmenu", {
510
518
511
519
_toggleAttr : function ( ) {
512
520
this . button
513
- . toggleClass ( "ui-corner-top" , this . isOpen )
514
- . toggleClass ( "ui-corner-all" , ! this . isOpen )
521
+ . toggleClass ( this . _classes ( "ui-selectmenu-button-open" ) , this . isOpen )
522
+ . toggleClass ( this . _classes ( "ui-selectmenu-button-closed" ) , ! this . isOpen )
515
523
. attr ( "aria-expanded" , this . isOpen ) ;
516
- this . menuWrap . toggleClass ( "ui-selectmenu-open" , this . isOpen ) ;
524
+ this . menuWrap . toggleClass ( this . _classes ( "ui-selectmenu-open" ) , this . isOpen ) ;
517
525
this . menu . attr ( "aria-hidden" , ! this . isOpen ) ;
518
526
} ,
519
527
0 commit comments