Skip to content

Commit 27c5deb

Browse files
committed
Improved drilldown keyboard handling
1 parent b90438d commit 27c5deb

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

tests/visual/menu/drilldown.html

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
$.widget("ui.drilldown", {
1515
_init: function() {
1616
var self = this;
17-
this.active = this.element;
17+
this.active = this.element.find(">ul").attr("tabindex", 0);
1818

1919
// hide submenus and create indicator icons
2020
this.element.find("ul").hide().prev("a").prepend('<span class="ui-icon ui-icon-carat-1-e"></span>').end().filter(":first").show();
@@ -84,17 +84,21 @@
8484
parent.parent().removeData("submenu");
8585
submenu = submenu.data("submenu");
8686
};
87+
},
88+
89+
widget: function() {
90+
return this.element.find(">ul");
8791
}
8892
});
8993

90-
var nestedmenu = $("#drilldown").drilldown({
94+
var drilldown = $("#drilldown").drilldown({
9195
selected: function(event, ui) {
9296
$("#log").append("<div>Selected " + ui.item.text() + "</div>");
9397
}
9498
});
9599

96-
$().keydown(function(event) {
97-
var menu = nestedmenu.data("drilldown").active.data("menu");
100+
drilldown.drilldown("widget").keydown(function(event) {
101+
var menu = drilldown.data("drilldown").active.data("menu");
98102
if (menu.widget().is(":hidden"))
99103
return;
100104
event.stopPropagation();
@@ -109,10 +113,10 @@
109113
menu.previous();
110114
break;
111115
case $.ui.keyCode.LEFT:
112-
nestedmenu.nestedmenu("up");
116+
drilldown.drilldown("up");
113117
break;
114118
case $.ui.keyCode.RIGHT:
115-
nestedmenu.nestedmenu("down");
119+
drilldown.drilldown("down");
116120
break;
117121
case $.ui.keyCode.DOWN:
118122
menu.next();
@@ -121,11 +125,11 @@
121125
case $.ui.keyCode.ENTER:
122126
case $.ui.keyCode.TAB:
123127
menu.select();
124-
nestedmenu.nestedmenu("hide");
128+
drilldown.drilldown("hide");
125129
event.preventDefault();
126130
break;
127131
case $.ui.keyCode.ESCAPE:
128-
nestedmenu.nestedmenu("hide");
132+
drilldown.drilldown("hide");
129133
break;
130134
default:
131135
clearTimeout(menu.filterTimer);

0 commit comments

Comments
 (0)