aboutsummaryrefslogtreecommitdiffstats
path: root/ui/jquery.ui.menu.js
diff options
context:
space:
mode:
authorFelix Nagel <info@felixnagel.com>2013-01-02 19:38:55 +0100
committerFelix Nagel <info@felixnagel.com>2013-01-02 19:38:55 +0100
commit1ba02e9c5fc96bfcdd82e6a72369f54a30a47ecb (patch)
treee21226ccc9b62a6a4a03fd4b7c7d62b889bd6aa7 /ui/jquery.ui.menu.js
parent2eb92232f3c0fa7b6643dce9197dae48f5b174ef (diff)
parent18b8ffd796ba557a7c939d67a1551b54402a7eb9 (diff)
downloadjquery-ui-1ba02e9c5fc96bfcdd82e6a72369f54a30a47ecb.tar.gz
jquery-ui-1ba02e9c5fc96bfcdd82e6a72369f54a30a47ecb.zip
Merge branch 'master' into selectmenu
Diffstat (limited to 'ui/jquery.ui.menu.js')
-rw-r--r--ui/jquery.ui.menu.js20
1 files changed, 15 insertions, 5 deletions
diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js
index 7f37b6b06..a666e934d 100644
--- a/ui/jquery.ui.menu.js
+++ b/ui/jquery.ui.menu.js
@@ -15,8 +15,6 @@
*/
(function( $, undefined ) {
-var mouseHandled = false;
-
$.widget( "ui.menu", {
version: "@VERSION",
defaultElement: "<ul>",
@@ -40,6 +38,9 @@ $.widget( "ui.menu", {
_create: function() {
this.activeMenu = this.element;
+ // flag used to prevent firing of the click handler
+ // as the event bubbles up through nested menus
+ this.mouseHandled = false;
this.element
.uniqueId()
.addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
@@ -73,8 +74,8 @@ $.widget( "ui.menu", {
},
"click .ui-menu-item:has(a)": function( event ) {
var target = $( event.target ).closest( ".ui-menu-item" );
- if ( !mouseHandled && target.not( ".ui-state-disabled" ).length ) {
- mouseHandled = true;
+ if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+ this.mouseHandled = true;
this.select( event );
// Open submenu on click
@@ -130,7 +131,7 @@ $.widget( "ui.menu", {
}
// Reset the mouseHandled flag
- mouseHandled = false;
+ this.mouseHandled = false;
}
});
},
@@ -343,6 +344,15 @@ $.widget( "ui.menu", {
}[ this.options.role ];
},
+ _setOption: function( key, value ) {
+ if ( key === "icons" ) {
+ this.element.find( ".ui-menu-icon" )
+ .removeClass( this.options.icons.submenu )
+ .addClass( value.submenu );
+ }
+ this._super( key, value );
+ },
+
focus: function( event, item ) {
var nested, focused;
this.blur( event, event && event.type === "focus" );