Menu: Handle clicking on a menu item without hovering it first. Fixes #7085 - Menu click when no mouseover causes error.

This commit is contained in:
Scott González 2011-03-15 14:02:18 -04:00
parent 9b3badea6c
commit da67ece506

View File

@ -34,14 +34,19 @@ $.widget("ui.menu", {
role: "listbox"
})
.bind( "click.menu", function( event ) {
var item = $( event.target ).closest( ".ui-menu-item:has(a)" );
if ( self.options.disabled ) {
return false;
}
if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
if ( !item.length ) {
return;
}
// temporary
event.preventDefault();
// it's possible to click an item without hovering it (#7085)
if ( !self.active || ( self.active[ 0 ] !== item[ 0 ] ) ) {
self.focus( event, item );
}
self.select( event );
})
.bind( "mouseover.menu", function( event ) {
@ -102,7 +107,7 @@ $.widget("ui.menu", {
event.preventDefault();
break;
case $.ui.keyCode.ENTER:
self.select();
self.select( event );
event.preventDefault();
event.stopImmediatePropagation();
break;