diff options
author | Kris Borchers <kris.borchers@gmail.com> | 2013-08-11 19:16:41 -0500 |
---|---|---|
committer | Kris Borchers <kris.borchers@gmail.com> | 2013-08-11 19:16:41 -0500 |
commit | ec61e54e6fcfe33adab09d1ecad8db2edcbad4cc (patch) | |
tree | 1621f4ff0e398ba21defa824817caa8391756984 /ui/jquery.ui.menu.js | |
parent | a156c2cadc81acf0856feb95ad41fe5f1a38315e (diff) | |
parent | cceb163548eea78525a3a60ada95a5af6e3ddf25 (diff) | |
download | jquery-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.js | 14 |
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 ); |