@@ -132,8 +132,19 @@ $.widget( "ui.selectmenu", {
132
132
this . menuInstance = this . menu . menu ( {
133
133
role : "listbox" ,
134
134
select : function ( event , ui ) {
135
+ var item = ui . item . data ( "ui-selectmenu-item" ) ,
136
+ oldIndex = that . element [ 0 ] . selectedIndex ;
137
+
138
+ // Change native select element
139
+ that . element [ 0 ] . selectedIndex = item . index ;
140
+
135
141
event . preventDefault ( ) ;
136
- that . _select ( ui . item . data ( "ui-selectmenu-item" ) , event ) ;
142
+ that . _select ( item , event ) ;
143
+ if ( item . index !== oldIndex ) {
144
+ that . _trigger ( "change" , event , { item : item } ) ;
145
+ }
146
+
147
+ that . close ( event ) ;
137
148
} ,
138
149
focus : function ( event , ui ) {
139
150
var item = ui . item . data ( "ui-selectmenu-item" ) ;
@@ -355,7 +366,10 @@ $.widget( "ui.selectmenu", {
355
366
}
356
367
} ,
357
368
change : function ( event ) {
358
- this . _select ( this . items [ this . element [ 0 ] . selectedIndex ] , event ) ;
369
+ var item = this . items [ this . element [ 0 ] . selectedIndex ] ;
370
+
371
+ this . _select ( item , event ) ;
372
+ this . _trigger ( "change" , event , { item : item } ) ;
359
373
} ,
360
374
keydown : function ( event ) {
361
375
if ( ! this . options . nativeMenu ) {
@@ -430,22 +444,12 @@ $.widget( "ui.selectmenu", {
430
444
} ,
431
445
432
446
_select : function ( item , event ) {
433
- var oldIndex = this . element [ 0 ] . selectedIndex ;
434
-
435
- if ( ! this . options . nativeMenu ) {
436
- // Change native select element
437
- this . element [ 0 ] . selectedIndex = item . index ;
438
- this . _setAria ( item ) ;
439
- }
440
-
441
447
this . _setText ( this . buttonText , item . label ) ;
442
448
this . _trigger ( "select" , event , { item : item } ) ;
443
449
444
- if ( item . index !== oldIndex ) {
445
- this . _trigger ( "change" , event , { item : item } ) ;
450
+ if ( ! this . options . nativeMenu ) {
451
+ this . _setAria ( item ) ;
446
452
}
447
-
448
- this . close ( event ) ;
449
453
} ,
450
454
451
455
_setAria : function ( item ) {
@@ -510,11 +514,11 @@ $.widget( "ui.selectmenu", {
510
514
511
515
_toggleAttr : function ( ) {
512
516
this . element . attr ( "aria-expanded" , this . isOpen ) ;
513
- this . button
514
- . toggleClass ( "ui-corner-top" , this . isOpen )
515
- . toggleClass ( "ui-corner-all" , ! this . isOpen ) ;
516
517
517
518
if ( ! this . options . nativeMenu ) {
519
+ this . button
520
+ . toggleClass ( "ui-corner-top" , this . isOpen )
521
+ . toggleClass ( "ui-corner-all" , ! this . isOpen ) ;
518
522
this . menuWrap . toggleClass ( "ui-selectmenu-open" , this . isOpen ) ;
519
523
this . menu . attr ( "aria-hidden" , ! this . isOpen ) ;
520
524
}
0 commit comments