@@ -277,21 +277,35 @@ $.widget( "ui.menu", {
277
277
} ,
278
278
279
279
refresh : function ( ) {
280
- // Initialize nested menus
281
280
var menus ,
282
281
icon = this . options . icons . submenu ,
283
- submenus = this . element . find ( this . options . menus + ":not(.ui-menu)" )
284
- . addClass ( "ui-menu ui-widget ui-widget-content ui-corner-all" )
285
- . hide ( )
286
- . attr ( {
287
- role : this . options . role ,
288
- "aria-hidden" : "true" ,
289
- "aria-expanded" : "false"
290
- } ) ;
282
+ submenus = this . element . find ( this . options . menus ) ;
283
+
284
+ // Initialize nested menus
285
+ submenus . filter ( ":not(.ui-menu)" )
286
+ . addClass ( "ui-menu ui-widget ui-widget-content ui-corner-all" )
287
+ . hide ( )
288
+ . attr ( {
289
+ role : this . options . role ,
290
+ "aria-hidden" : "true" ,
291
+ "aria-expanded" : "false"
292
+ } )
293
+ . each ( function ( ) {
294
+ var menu = $ ( this ) ,
295
+ item = menu . prev ( "a" ) ,
296
+ submenuCarat = $ ( "<span>" )
297
+ . addClass ( "ui-menu-icon ui-icon " + icon )
298
+ . data ( "ui-menu-submenu-carat" , true ) ;
299
+
300
+ item
301
+ . attr ( "aria-haspopup" , "true" )
302
+ . prepend ( submenuCarat ) ;
303
+ menu . attr ( "aria-labelledby" , item . attr ( "id" ) ) ;
304
+ } ) ;
291
305
292
- // Don't refresh list items that are already adapted
293
306
menus = submenus . add ( this . element ) ;
294
307
308
+ // Don't refresh list items that are already adapted
295
309
menus . children ( ":not(.ui-menu-item):has(a)" )
296
310
. addClass ( "ui-menu-item" )
297
311
. attr ( "role" , "presentation" )
@@ -315,19 +329,6 @@ $.widget( "ui.menu", {
315
329
// Add aria-disabled attribute to any disabled menu item
316
330
menus . children ( ".ui-state-disabled" ) . attr ( "aria-disabled" , "true" ) ;
317
331
318
- submenus . each ( function ( ) {
319
- var menu = $ ( this ) ,
320
- item = menu . prev ( "a" ) ,
321
- submenuCarat = $ ( "<span>" )
322
- . addClass ( "ui-menu-icon ui-icon " + icon )
323
- . data ( "ui-menu-submenu-carat" , true ) ;
324
-
325
- item
326
- . attr ( "aria-haspopup" , "true" )
327
- . prepend ( submenuCarat ) ;
328
- menu . attr ( "aria-labelledby" , item . attr ( "id" ) ) ;
329
- } ) ;
330
-
331
332
// If the active item has been removed, blur the menu
332
333
if ( this . active && ! $ . contains ( this . element [ 0 ] , this . active [ 0 ] ) ) {
333
334
this . blur ( ) ;
0 commit comments