@@ -277,21 +277,35 @@ $.widget( "ui.menu", {
277277 } ,
278278
279279 refresh : function ( ) {
280- // Initialize nested menus
281280 var menus ,
282281 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+ } ) ;
291305
292- // Don't refresh list items that are already adapted
293306 menus = submenus . add ( this . element ) ;
294307
308+ // Don't refresh list items that are already adapted
295309 menus . children ( ":not(.ui-menu-item):has(a)" )
296310 . addClass ( "ui-menu-item" )
297311 . attr ( "role" , "presentation" )
@@ -315,19 +329,6 @@ $.widget( "ui.menu", {
315329 // Add aria-disabled attribute to any disabled menu item
316330 menus . children ( ".ui-state-disabled" ) . attr ( "aria-disabled" , "true" ) ;
317331
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-
331332 // If the active item has been removed, blur the menu
332333 if ( this . active && ! $ . contains ( this . element [ 0 ] , this . active [ 0 ] ) ) {
333334 this . blur ( ) ;
0 commit comments