From abfdb2a8b6f93607c0791ba91ab616aed6b04772 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 30 Apr 2010 13:04:09 +0200 Subject: First attempt at integrating key handling into menu --- tests/visual/menu/contextmenu.html | 51 +++++++++++++------------------------- tests/visual/menu/drilldown.html | 2 ++ tests/visual/menu/menu.html | 33 +++--------------------- tests/visual/menu/nested.html | 2 ++ 4 files changed, 24 insertions(+), 64 deletions(-) (limited to 'tests') diff --git a/tests/visual/menu/contextmenu.html b/tests/visual/menu/contextmenu.html index a6b8c4b8f..d73be5ee4 100644 --- a/tests/visual/menu/contextmenu.html +++ b/tests/visual/menu/contextmenu.html @@ -18,23 +18,24 @@ top: 10 }).appendTo(document.body).themeswitcher(); - var menus = $("#menu1, #menu2").menu({ - selected: function(event, ui) { - $("#log").append("
Selected " + ui.item.text() + "
"); - } - }).hide(); - - - $("button").click(function(event) { + $("button").each(function() { + $(this).next().menu({ + selected: function(event, ui) { + $(this).hide(); + $("#log").append("
Selected " + ui.item.text() + "
"); + }, + input: $(this) + }).hide(); + }).click(function(event) { // TODO required to prevent the click handler below from handling this event event.stopPropagation(); - $("#menu" + this.id).menu("deactivate").show().position({ + var menu = $("#menu" + this.id).menu("deactivate").show().position({ my: "left top", at: "right top", of: event.pageX > 0 ? event : this }); $(document).one("click", function() { - menus.hide(); + menu.hide(); }) }).keydown(function(event) { var menu = $("#menu" + this.id).data("menu"); @@ -42,24 +43,8 @@ return; event.stopPropagation(); switch (event.keyCode) { - case $.ui.keyCode.PAGE_UP: - menu.previousPage(); - break; - case $.ui.keyCode.PAGE_DOWN: - menu.nextPage(); - break; - case $.ui.keyCode.UP: - menu.previous(); - break; - case $.ui.keyCode.DOWN: - menu.next(); - event.preventDefault(); - break; - case $.ui.keyCode.ENTER: case $.ui.keyCode.TAB: - menu.select(); menu.widget().hide(); - event.preventDefault(); break; case $.ui.keyCode.ESCAPE: menu.widget().hide(); @@ -111,7 +96,6 @@ - +
+ Log: +
+
+ + -
- Log: -
-
- - - diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html index 8a6fd6b80..e9572db6c 100644 --- a/tests/visual/menu/drilldown.html +++ b/tests/visual/menu/drilldown.html @@ -28,6 +28,8 @@ this.element.find("ul").hide().prev("a").prepend('').end().filter(":first").show(); this.element.find("ul").menu({ + // disable built-in key handling + input: $(), focus: function(event, ui) { self.activeItem = ui.item; }, diff --git a/tests/visual/menu/menu.html b/tests/visual/menu/menu.html index efae8b1ae..0f3dadae0 100644 --- a/tests/visual/menu/menu.html +++ b/tests/visual/menu/menu.html @@ -17,37 +17,10 @@ top: 10 }).appendTo(document.body).themeswitcher(); - var menus = $("#menu1, #menu2").menu({ + $("#menu1, #menu2").menu({ selected: function(event, ui) { $("
").text("Selected: " + ui.item.text()).appendTo("#log"); } - }).keydown(function(event) { - var menu = $(this).data("menu"); - if (menu.widget().is(":hidden")) - return; - event.stopPropagation(); - switch (event.keyCode) { - case $.ui.keyCode.PAGE_UP: - menu.previousPage(); - event.preventDefault(); - break; - case $.ui.keyCode.PAGE_DOWN: - menu.nextPage(); - event.preventDefault(); - break; - case $.ui.keyCode.UP: - menu.previous(); - event.preventDefault(); - break; - case $.ui.keyCode.DOWN: - menu.next(); - event.preventDefault(); - break; - case $.ui.keyCode.ENTER: - menu.select(); - event.preventDefault(); - break; - } }); }); @@ -60,7 +33,7 @@ -