@@ -130,14 +130,15 @@ $.widget( "ui.selectmenu", {
130130 . menu ( {
131131 select : function ( event , ui ) {
132132 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+
137136 that . _setOption ( "value" , item . value ) ;
138137 that . _trigger ( "select" , event , { item : item } ) ;
139138
140- if ( flag ) that . _trigger ( "change" , event , { item : item } ) ;
139+ if ( item . index != oldIndex ) {
140+ that . _trigger ( "change" , event , { item : item } ) ;
141+ }
141142
142143 if ( that . opened ) {
143144 event . preventDefault ( ) ;
@@ -146,7 +147,11 @@ $.widget( "ui.selectmenu", {
146147 } ,
147148 focus : function ( event , ui ) {
148149 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+
150155 that . focus = item . index ;
151156 }
152157 } ) ;
@@ -242,7 +247,9 @@ $.widget( "ui.selectmenu", {
242247 this . menuWrap . removeClass ( 'ui-selectmenu-open' ) ;
243248 this . opened = false ;
244249
245- if ( focus ) this . button . focus ( ) ;
250+ if ( focus ) {
251+ this . button . focus ( ) ;
252+ }
246253
247254 this . _trigger ( "close" , event ) ;
248255 }
@@ -279,9 +286,15 @@ $.widget( "ui.selectmenu", {
279286 } ,
280287
281288 _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+ }
285298 } ,
286299
287300 _getSelectedItem : function ( ) {
@@ -307,7 +320,9 @@ $.widget( "ui.selectmenu", {
307320 keydown : function ( event ) {
308321 switch ( event . keyCode ) {
309322 case $ . ui . keyCode . TAB :
310- if ( this . opened ) this . close ( event ) ;
323+ if ( this . opened ) {
324+ this . close ( event ) ;
325+ }
311326 break ;
312327 case $ . ui . keyCode . ENTER :
313328 if ( this . opened ) {
0 commit comments