From: Hans Hillen Date: Mon, 18 Apr 2011 21:05:50 +0000 (+0200) Subject: Fix "menubar does not collapse when clicking on other menubar" + minor changes X-Git-Tag: 1.9m5~108^2~9 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d77185a5a115174cf6ab8bf5224f652124008e19;p=jquery-ui.git Fix "menubar does not collapse when clicking on other menubar" + minor changes --- diff --git a/tests/visual/menu/menubar.html b/tests/visual/menu/menubar.html index c5b63ae86..1b4b331f6 100644 --- a/tests/visual/menu/menubar.html +++ b/tests/visual/menu/menubar.html @@ -55,13 +55,13 @@ .ui-menubar .ui-button { float: left; font-weight: normal; border-top-width: 0 !important; border-bottom-width: 0 !important; margin: 0; outline: none; } .ui-menubar .ui-menubar-link { border-right: 1px dashed transparent; border-left: 1px dashed transparent; } - ol.ui-menubar, ul.ui-menubar { + .ui-menubar, .ui-menubar { list-style: none; margin-left: 0; padding-left: 0; } - li.ui-menubar-item { + .ui-menubar-item { float: left; } diff --git a/tests/visual/menu/menubar.js b/tests/visual/menu/menubar.js index 453f5fae7..e6f6ab069 100644 --- a/tests/visual/menu/menubar.js +++ b/tests/visual/menu/menubar.js @@ -67,7 +67,6 @@ $.widget("ui.menubar", { return; } event.preventDefault(); - event.stopPropagation(); if (event.type == "click" && menu.is(":visible") && self.active && self.active[0] == menu[0]) { self._close(); return; @@ -111,8 +110,11 @@ $.widget("ui.menubar", { }); self._bind(document, { click: function(event) { - if (self.open && !$(event.target).closest(".ui-menubar").length) { - self._close(); + if (self.open) { + var menubar = $(event.target).closest(".ui-menubar"); + if (!menubar.length || menubar.get(0) !== self.element.get(0)) { + self._close(); + } } } }) @@ -162,6 +164,8 @@ $.widget("ui.menubar", { }, _close: function() { + if (!this.active || !this.active.length) + return; this.active.menu("closeAll").hide().attr("aria-hidden", "true").attr("aria-expanded", "false"); this.active.prev().removeClass("ui-state-active").removeAttr("tabIndex"); this.active = null; diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index 0b2852f06..0a06fe0b5 100644 --- a/ui/jquery.ui.menu.js +++ b/ui/jquery.ui.menu.js @@ -319,6 +319,7 @@ $.widget("ui.menu", { if (newItem && newItem.length) { this._open(newItem.parent()); var current = this.active; + //timeout so Firefox will not hide activedescendant change in expanding submenu from AT setTimeout(function(){self.focus(event, newItem)}, 20); return true; }