Skip to content

Commit da67ece

Browse files
committed
Menu: Handle clicking on a menu item without hovering it first. Fixes #7085 - Menu click when no mouseover causes error.
1 parent 9b3bade commit da67ece

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

ui/jquery.ui.menu.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,19 @@ $.widget("ui.menu", {
3434
role: "listbox"
3535
})
3636
.bind( "click.menu", function( event ) {
37+
var item = $( event.target ).closest( ".ui-menu-item:has(a)" );
3738
if ( self.options.disabled ) {
3839
return false;
3940
}
40-
if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
41+
if ( !item.length ) {
4142
return;
4243
}
4344
// temporary
4445
event.preventDefault();
46+
// it's possible to click an item without hovering it (#7085)
47+
if ( !self.active || ( self.active[ 0 ] !== item[ 0 ] ) ) {
48+
self.focus( event, item );
49+
}
4550
self.select( event );
4651
})
4752
.bind( "mouseover.menu", function( event ) {
@@ -102,7 +107,7 @@ $.widget("ui.menu", {
102107
event.preventDefault();
103108
break;
104109
case $.ui.keyCode.ENTER:
105-
self.select();
110+
self.select( event );
106111
event.preventDefault();
107112
event.stopImmediatePropagation();
108113
break;

0 commit comments

Comments
 (0)