r3423 committed - menu: refactored nested prototype to allow more then one sublevel
Revision: 3423
Author: joern.zaefferer
Date: Mon Nov 9 03:10:32 2009
Log: menu: refactored nested prototype to allow more then one sublevel
http://code.google.com/p/jquery-ui/source/detail?r=3423
Modified:
/branches/dev/tests/visual/menu/nested.html
=======================================
--- /branches/dev/tests/visual/menu/nested.html Sat Nov 7 02:48:54 2009
+++ /branches/dev/tests/visual/menu/nested.html Mon Nov 9 03:10:32 2009
@@ -27,7 +27,7 @@
focus: function(event, ui) {
// put a previous submenu back into its place and hide it
if (submenu) {
- submenu.child.appendTo(submenu.parent).hide();
+ submenu.appendTo(submenu.data("menuparent")).hide();
submenu = null;
}
var nested = $("ul", ui.item);
@@ -43,11 +43,8 @@
of: ui.item
});
// store the current submenu
- submenu = {
- child: nested,
- // also store the submenu's parent is now document.body
- parent: ui.item
- }
+ submenu = nested;
+ submenu.data("menuparent", ui.item);
}
}
}).hide();
@@ -67,12 +64,12 @@
$().one("click", function() {
menu.hide();
if (submenu) {
- submenu.child.appendTo(submenu.parent).hide();
+ submenu.appendTo(submenu.data("menuparent")).hide();
submenu = null;
}
})
}).keydown(function(event) {
- var menu = submenu && submenu.focussed && submenu.child.data("menu") ||
$("#menu" + this.id).data("menu");
+ var menu = submenu && submenu.data("menufocussed") &&
submenu.data("menu") || $("#menu" + this.id).data("menu");
if (menu.widget().is(":hidden"))
return;
event.stopPropagation();
@@ -87,15 +84,15 @@
menu.previous();
break;
case $.ui.keyCode.LEFT:
- if (submenu.focussed) {
- submenu.focussed = false;
+ if (submenu && submenu.data("menufocussed")) {
+ submenu.data("menufocussed", false);
menu.deactivate();
}
break;
case $.ui.keyCode.RIGHT:
- if (submenu.child) {
- submenu.focussed = true;
- menu = submenu.child.data("menu");
+ if (submenu) {
+ submenu.data("menufocussed", true);
+ menu = submenu.data("menu");
menu.activate(menu.element.children(":first"));
}
break;
@@ -108,20 +105,22 @@
menu.select();
menu.widget().hide();
if (submenu) {
- submenu.child.appendTo(submenu.parent).hide();
+ submenu.appendTo(submenu.data("menuparent"));
+ submenu.removeData("menuparent");
+ submenu = null;
// also hide parent
$("#menu" + this.id).hide();
- submenu = null;
}
event.preventDefault();
break;
case $.ui.keyCode.ESCAPE:
menu.widget().hide();
if (submenu) {
- submenu.child.appendTo(submenu.parent).hide();
+ submenu.appendTo(submenu.data("menuparent"));
+ submenu.removeData("menuparent");
+ submenu = null;
// also hide parent
$("#menu" + this.id).hide();
- submenu = null;
}
break;
default: