@@ -130,14 +130,15 @@ $.widget( "ui.selectmenu", {
130
130
. menu ( {
131
131
select : function ( event , ui ) {
132
132
var flag = false ,
133
- item = ui . item . data ( "item.selectmenu" ) ;
134
-
135
- if ( item . index != that . element [ 0 ] . selectedIndex ) flag = true ;
136
-
133
+ item = ui . item . data ( "item.selectmenu" ) ,
134
+ oldIndex = that . element [ 0 ] . selectedIndex ;
135
+
137
136
that . _setOption ( "value" , item . value ) ;
138
137
that . _trigger ( "select" , event , { item : item } ) ;
139
138
140
- if ( flag ) that . _trigger ( "change" , event , { item : item } ) ;
139
+ if ( item . index != oldIndex ) {
140
+ that . _trigger ( "change" , event , { item : item } ) ;
141
+ }
141
142
142
143
if ( that . opened ) {
143
144
event . preventDefault ( ) ;
@@ -146,7 +147,11 @@ $.widget( "ui.selectmenu", {
146
147
} ,
147
148
focus : function ( event , ui ) {
148
149
var item = ui . item . data ( "item.selectmenu" ) ;
149
- if ( that . focus !== undefined && item . index != that . focus ) that . _trigger ( "focus" , event , { item : item } ) ;
150
+
151
+ if ( that . focus !== undefined && item . index != that . focus ) {
152
+ that . _trigger ( "focus" , event , { item : item } ) ;
153
+ }
154
+
150
155
that . focus = item . index ;
151
156
}
152
157
} ) ;
@@ -242,7 +247,9 @@ $.widget( "ui.selectmenu", {
242
247
this . menuWrap . removeClass ( 'ui-selectmenu-open' ) ;
243
248
this . opened = false ;
244
249
245
- if ( focus ) this . button . focus ( ) ;
250
+ if ( focus ) {
251
+ this . button . focus ( ) ;
252
+ }
246
253
247
254
this . _trigger ( "close" , event ) ;
248
255
}
@@ -279,9 +286,15 @@ $.widget( "ui.selectmenu", {
279
286
} ,
280
287
281
288
_move : function ( key , event ) {
282
- if ( ! this . opened ) this . menu . menu ( "focus" , event , this . _getSelectedItem ( ) ) ;
283
- this . menu . menu ( key , event ) ;
284
- if ( ! this . opened ) this . menu . menu ( "select" , event ) ;
289
+ if ( ! this . opened ) {
290
+ this . menu . menu ( "focus" , event , this . _getSelectedItem ( ) ) ;
291
+ }
292
+
293
+ this . menu . menu ( key , event ) ;
294
+
295
+ if ( ! this . opened ) {
296
+ this . menu . menu ( "select" , event ) ;
297
+ }
285
298
} ,
286
299
287
300
_getSelectedItem : function ( ) {
@@ -307,7 +320,9 @@ $.widget( "ui.selectmenu", {
307
320
keydown : function ( event ) {
308
321
switch ( event . keyCode ) {
309
322
case $ . ui . keyCode . TAB :
310
- if ( this . opened ) this . close ( event ) ;
323
+ if ( this . opened ) {
324
+ this . close ( event ) ;
325
+ }
311
326
break ;
312
327
case $ . ui . keyCode . ENTER :
313
328
if ( this . opened ) {
0 commit comments