diff options
Diffstat (limited to 'ui/menu.js')
-rw-r--r-- | ui/menu.js | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ui/menu.js b/ui/menu.js index 3df6cb204..89281e4f0 100644 --- a/ui/menu.js +++ b/ui/menu.js @@ -108,13 +108,22 @@ return $.widget( "ui.menu", { } }, "mouseenter .ui-menu-item": function( event ) { + // Ignore mouse events while typeahead is active, see #10458. // Prevents focusing the wrong item when typeahead causes a scroll while the mouse // is over an item in the menu if ( this.previousFilter ) { return; } - var target = $( event.currentTarget ); + + var actualTarget = $( event.target ).closest( ".ui-menu-item" ), + target = $( event.currentTarget ); + + // Ignore bubbled events on parent items, see #11641 + if ( actualTarget[ 0 ] !== target[ 0 ] ) { + return; + } + // Remove ui-state-active class from siblings of the newly focused menu item // to avoid a jump caused by adjacent elements both having a class with a border this._removeClass( target.siblings().children( ".ui-state-active" ), |