Skip to content

Commit

Permalink
Menu: Move mousedown handler into _bind and fix focusing of the Menu …
Browse files Browse the repository at this point in the history
…after click. Fixes focus issues with Selectmenu and Autocomplete.
  • Loading branch information
kborchers committed Nov 24, 2011
1 parent 2b9b2f2 commit 74a3f2c
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions ui/jquery.ui.menu.js
Expand Up @@ -40,16 +40,6 @@ $.widget( "ui.menu", {
id: this.menuId,
role: "menu"
})
// Prevent focus from sticking to links inside menu after clicking
// them (focus should always stay on UL during navigation).
// If the link is clicked, redirect focus to the menu.
// TODO move to _bind below
.bind( "mousedown.menu", function( event ) {
if ( $( event.target).is( "a" ) ) {
event.preventDefault();
$( this ).focus( 1 );
}
})
// need to catch all clicks on disabled menu
// not possible through _bind
.bind( "click.menu", $.proxy( function( event ) {
Expand All @@ -58,6 +48,11 @@ $.widget( "ui.menu", {
}
}, this));
this._bind({
// Prevent focus from sticking to links inside menu after clicking
// them (focus should always stay on UL during navigation).
"mousedown .ui-menu-item > a": function( event ) {
event.preventDefault();
},
"click .ui-menu-item:has(a)": function( event ) {
event.stopImmediatePropagation();
var target = $( event.currentTarget );
Expand All @@ -66,6 +61,8 @@ $.widget( "ui.menu", {
this.focus( event, target );
}
this.select( event );
// Redirect focus to the menu.
this.element.focus();
},
"mouseover .ui-menu-item": function( event ) {
event.stopImmediatePropagation();
Expand Down

0 comments on commit 74a3f2c

Please sign in to comment.