aboutsummaryrefslogtreecommitdiffstats
path: root/ui/jquery.ui.menu.js
diff options
context:
space:
mode:
authorKris Borchers <kris.borchers@gmail.com>2013-08-11 19:16:41 -0500
committerKris Borchers <kris.borchers@gmail.com>2013-08-11 19:16:41 -0500
commitec61e54e6fcfe33adab09d1ecad8db2edcbad4cc (patch)
tree1621f4ff0e398ba21defa824817caa8391756984 /ui/jquery.ui.menu.js
parenta156c2cadc81acf0856feb95ad41fe5f1a38315e (diff)
parentcceb163548eea78525a3a60ada95a5af6e3ddf25 (diff)
downloadjquery-ui-ec61e54e6fcfe33adab09d1ecad8db2edcbad4cc.tar.gz
jquery-ui-ec61e54e6fcfe33adab09d1ecad8db2edcbad4cc.zip
Merge branch 'master' into selectmenu
Diffstat (limited to 'ui/jquery.ui.menu.js')
-rw-r--r--ui/jquery.ui.menu.js14
1 files changed, 11 insertions, 3 deletions
diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js
index c0222629d..3352eb8bd 100644
--- a/ui/jquery.ui.menu.js
+++ b/ui/jquery.ui.menu.js
@@ -75,9 +75,13 @@ $.widget( "ui.menu", {
"click .ui-menu-item:has(a)": function( event ) {
var target = $( event.target ).closest( ".ui-menu-item" );
if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
- this.mouseHandled = true;
-
this.select( event );
+
+ // Only set the mouseHandled flag if the event will bubble, see #9469.
+ if ( !event.isPropagationStopped() ) {
+ this.mouseHandled = true;
+ }
+
// Open submenu on click
if ( target.has( ".ui-menu" ).length ) {
this.expand( event );
@@ -126,7 +130,7 @@ $.widget( "ui.menu", {
// Clicks outside of a menu collapse any open menus
this._on( this.document, {
click: function( event ) {
- if ( !$( event.target ).closest( ".ui-menu" ).length ) {
+ if ( this._closeOnDocumentClick( event ) ) {
this.collapseAll( event );
}
@@ -498,6 +502,10 @@ $.widget( "ui.menu", {
.removeClass( "ui-state-active" );
},
+ _closeOnDocumentClick: function( event ) {
+ return !$( event.target ).closest( ".ui-menu" ).length;
+ },
+
collapse: function( event ) {
var newItem = this.active &&
this.active.parent().closest( ".ui-menu-item", this.element );