From adf80bfb38ba20eb089633c8867bce4131ec1e23 Mon Sep 17 00:00:00 2001 From: maggiewachs Date: Thu, 24 Feb 2011 11:44:47 -0500 Subject: [PATCH] Added active state toggle to items with submenus to provide "breadcrumb" feedback --- ui/jquery.ui.menu.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index 3915c3301..93b75326f 100644 --- a/ui/jquery.ui.menu.js +++ b/ui/jquery.ui.menu.js @@ -213,12 +213,13 @@ $.widget("ui.menu", { .end(); // need to remove the attribute before adding it for the screenreader to pick up the change // see http://groups.google.com/group/jquery-a11y/msg/929e0c1e8c5efc8f - this.element.removeAttr("aria-activedescendant").attr("aria-activedescendant", self.itemId); - + this.element.removeAttr("aria-activedescendant").attr("aria-activedescendant", self.itemId) + self._close(); var nested = $(">ul", item); if (nested.length && /^mouse/.test(event.type)) { self._open(nested); + this.active.find(">a:first").addClass("ui-state-active"); } this.activeMenu = item.parent(); @@ -229,7 +230,7 @@ $.widget("ui.menu", { if (!this.active) { return; } - + this.active.children( "a" ).removeClass( "ui-state-focus" ); // remove only generated id $( "#" + this.menuId + "-activedescendant" ).removeAttr( "id" ); @@ -261,7 +262,9 @@ $.widget("ui.menu", { }, _close: function() { - this.active.parent().find("ul").hide(); + this.active.parent() + .find("ul").hide().end() + .find("a.ui-state-active").removeClass("ui-state-active"); }, left: function(event) { -- 2.39.5