Skip to content
Permalink
Browse files
Menu: More precise removal of ui-state-active class for easier CSS ov…
…errides. Fixes #9532 - Need a way in Menu to keep ui-state-active class on selected item
  • Loading branch information
kborchers committed Oct 19, 2013
1 parent 14065dc commit 52307ebadbca3f403549140e1d34f08bc07bf8ce
Showing with 15 additions and 2 deletions.
  1. +13 −0 tests/unit/menu/menu_core.js
  2. +2 −2 ui/jquery.ui.menu.js
@@ -45,4 +45,17 @@ asyncTest( "#9044: Autofocus issue with dialog opened from menu widget", functio
});
});

asyncTest( "#9532: Need a way in Menu to keep ui-state-active class on selected item for Selectmenu", function() {
expect( 1 );
var element = $( "#menu1" ).menu(),
firstChild = element.children().eq( 0 );

element.menu( "focus", null, firstChild );
firstChild.addClass( "ui-state-active" );
setTimeout( function() {
ok( firstChild.is( ".ui-state-active" ), "ui-state-active improperly removed" );
start();
}, 500 );
});

})( jQuery );
@@ -371,7 +371,7 @@ $.widget( "ui.menu", {
this._scrollIntoView( item );

this.active = item.first();
focused = this.active.addClass( "ui-state-focus" );
focused = this.active.addClass( "ui-state-focus" ).removeClass( "ui-state-active" );
// Only update aria-activedescendant if there's a role
// otherwise we assume focus is managed elsewhere
if ( this.options.role ) {
@@ -498,7 +498,7 @@ $.widget( "ui.menu", {
.attr( "aria-hidden", "true" )
.attr( "aria-expanded", "false" )
.end()
.find( ".ui-state-active" )
.find( ".ui-state-active" ).not( ".ui-state-focus" )
.removeClass( "ui-state-active" );
},

0 comments on commit 52307eb

Please sign in to comment.