aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkborchers <k_borchers@yahoo.com>2011-10-12 13:01:19 -0500
committerkborchers <k_borchers@yahoo.com>2011-10-12 16:13:34 -0500
commit9a274c06756dabb2797997a27393cc7da4eed5f5 (patch)
treed69b6a9c09ac1f104140762ef9d4aff71b457a93
parent75415b35eafbd09fbc804d6cfe6d9d6b6b65d17d (diff)
downloadjquery-ui-9a274c06756dabb2797997a27393cc7da4eed5f5.tar.gz
jquery-ui-9a274c06756dabb2797997a27393cc7da4eed5f5.zip
Menu: Check if menu is scrolling to prevent inadvertent mouseover events from being fired on scroll
-rw-r--r--ui/jquery.ui.menu.js16
1 files changed, 12 insertions, 4 deletions
diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js
index 6d9db8879..944e47b7c 100644
--- a/ui/jquery.ui.menu.js
+++ b/ui/jquery.ui.menu.js
@@ -28,6 +28,7 @@ $.widget( "ui.menu", {
},
_create: function() {
this.activeMenu = this.element;
+ this.isScrolling = false;
this.menuId = this.element.attr( "id" ) || "ui-menu-" + idIncrement++;
if ( this.element.find( ".ui-icon" ).length ) {
this.element.addClass( "ui-menu-icons" );
@@ -57,10 +58,13 @@ $.widget( "ui.menu", {
},
"mouseover .ui-menu-item": function( event ) {
event.stopImmediatePropagation();
- var target = $( event.currentTarget );
- // 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
- target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" );
- this.focus( event, target );
+ if ( !this.isScrolling ) {
+ var target = $( event.currentTarget );
+ // 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
+ target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" );
+ this.focus( event, target );
+ }
+ this.isScrolling = false;
},
"mouseleave": "collapseAll",
"mouseleave .ui-menu": "collapseAll",
@@ -74,6 +78,10 @@ $.widget( "ui.menu", {
this.collapseAll( event );
}
}, 0);
+ },
+ scroll: function( event ) {
+ // Keep track of scrolling to prevent mouseover from firing inadvertently when scrolling the menu
+ this.isScrolling = true;
}
});