mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Menu: Only focus menu after click if focus is on an element within menu. Fixes #9044 - Menu: Autofocus issue with dialog opened from menu widget
This commit is contained in:
parent
d13df39e39
commit
485e0a0612
@ -27,4 +27,22 @@ test( "accessibility", function () {
|
||||
// Item roles are tested in the role option tests
|
||||
});
|
||||
|
||||
asyncTest( "#9044: Autofocus issue with dialog opened from menu widget", function() {
|
||||
expect( 1 );
|
||||
var element = $( "#menu1" ).menu();
|
||||
|
||||
$( "<input>", { id: "test9044" } ).appendTo( "body" );
|
||||
|
||||
$( "#testID1" ).bind( "click", function() {
|
||||
$( "#test9044" ).focus();
|
||||
});
|
||||
|
||||
TestHelpers.menu.click( element, "3" );
|
||||
setTimeout( function() {
|
||||
equal( document.activeElement.id, "test9044", "Focus was swallowed by menu" );
|
||||
$( "#test9044" ).remove();
|
||||
start();
|
||||
});
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
|
3
ui/jquery.ui.menu.js
vendored
3
ui/jquery.ui.menu.js
vendored
@ -85,7 +85,8 @@ $.widget( "ui.menu", {
|
||||
// Open submenu on click
|
||||
if ( target.has( ".ui-menu" ).length ) {
|
||||
this.expand( event );
|
||||
} else if ( !this.element.is( ":focus" ) ) {
|
||||
} else if ( !this.element.is( ":focus" ) && $( this.document[ 0 ].activeElement ).closest( ".ui-menu" ).length ) {
|
||||
|
||||
// Redirect focus to the menu
|
||||
this.element.trigger( "focus", [ true ] );
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user