diff options
author | jzaefferer <joern.zaefferer@gmail.com> | 2010-03-26 19:59:17 -0400 |
---|---|---|
committer | jzaefferer <joern.zaefferer@gmail.com> | 2010-03-26 19:59:17 -0400 |
commit | cd32b3fc5a8eca0096594a8e9946223529b815c9 (patch) | |
tree | 98a33dd5221fc75a162c892e04facafba3a6d9a6 /tests/visual/menu/nested.html | |
parent | 6d9caf1e230b7b9a4291a8e3525eefad2f08b6f8 (diff) | |
download | jquery-ui-cd32b3fc5a8eca0096594a8e9946223529b815c9.tar.gz jquery-ui-cd32b3fc5a8eca0096594a8e9946223529b815c9.zip |
Menu prototypes: Remove early nested and drilldown prototypes, to be replaced with nested2/drilldown2
Diffstat (limited to 'tests/visual/menu/nested.html')
-rw-r--r-- | tests/visual/menu/nested.html | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/tests/visual/menu/nested.html b/tests/visual/menu/nested.html deleted file mode 100644 index 96a0379d3..000000000 --- a/tests/visual/menu/nested.html +++ /dev/null @@ -1,255 +0,0 @@ -<!doctype html> -<html> -<head> - <title>Menu Visual Test: Default</title> - <link rel="stylesheet" href="../visual.css" type="text/css" /> - <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css" type="text/css" title="ui-theme" /> - <script type="text/javascript" src="../../../jquery-1.4.2.js"></script> - <script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script> - <script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script> - <script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script> - <script type="text/javascript" src="../../../ui/jquery.ui.autocomplete.js"></script> - <script type="text/javascript"> - $(function() { - $.widget("ui.nestedmenu", { - _init: function() { - var self = this; - this.active = this.element; - - // hide submenus and create indicator icons - this.element.find("ul").hide().prev("a").prepend('<span class="ui-icon ui-icon-carat-1-e"></span>'); - - this.element.find("ul").andSelf().menu({ - selected: this.options.selected, - focus: function(event, ui) { - self.active = ui.item.parent(); - self.activeItem = ui.item; - // put a previous submenu back into its place and hide it - self.hideDown(); - var nested = $(">ul", ui.item); - // only for mouse-events (should actually check event.originalEvent.type, but for keys, originalEvent is undefined...) - if (nested.length && /^mouse/.test(event.originalEvent.type)) { - self._openSubmenu(nested, ui.item); - } - } - }) - }, - - _openSubmenu: function(nested, item) { - // append to body in order to display the submenu above the parent menu, instead of inside of it - nested.appendTo(document.body).menu("deactivate").show().position({ - my: "left top", - at: "right top", - of: item - // store the current submenu - }).data("menuparent", item); - - this.active.data("submenu", nested); - }, - - up: function(event) { - if (!this.active.data("menuparent")) - return; - this.active.menu("deactivate"); - this.active = this.active.data("menuparent").parent(); - this.activeItem = this.active.data("menu").active; - this.hideDown(); - }, - - down: function(event) { - var submenu = this.active.data("submenu"); - if (!submenu && this.activeItem) { - // try to open submenu or return(?); only mouseover opens submenu directly, key doesn't - var item = this.activeItem, - nested = item.children("ul"); - if (!nested.length) - return; - this._openSubmenu(nested, item); - submenu = this.active.data("submenu"); - } - submenu.data("menu").activate(event, submenu.children(":first")) - this.active = submenu; - }, - - show: function() { - this.element.menu("deactivate").show(); - this.active = this.element; - }, - - hide: function() { - this.hideDown(); - var child = this.active.hide(), parent; - while(child.data("menuparent")) { - parent = child.data("menuparent"); - child.appendTo(parent).removeData("menuparent"); - child = parent.parent().removeData("submenu").hide(); - } - }, - - hideDown: function() { - var submenu = this.active.data("submenu"); - while(submenu) { - var parent = submenu.data("menuparent"); - submenu.appendTo(parent).hide().removeData("menuparent"); - parent.parent().removeData("submenu"); - submenu = submenu.data("submenu"); - }; - } - }); - - var nestedmenu = $("#menu").nestedmenu({ - selected: function(event, ui) { - $("#log").append("<div>Selected " + ui.item.text() + "</div>"); - } - }).hide(); - - $("button").click(function(event) { - // TODO required to prevent the click handler below from handling this event - event.stopPropagation(); - nestedmenu.nestedmenu("show") - .css({ - top: 0, - left: 0 - }) - .position({ - my: "left top", - at: "right top", - of: this - }); - $(document).one("click", function() { - nestedmenu.nestedmenu("hide"); - }) - }).keydown(function(event) { - var menu = nestedmenu.data("nestedmenu").active.data("menu"); - if (menu.widget().is(":hidden")) - return; - event.stopPropagation(); - switch (event.keyCode) { - case $.ui.keyCode.PAGE_UP: - menu.previousPage(event); - break; - case $.ui.keyCode.PAGE_DOWN: - menu.nextPage(event); - break; - case $.ui.keyCode.UP: - menu.previous(event); - break; - case $.ui.keyCode.LEFT: - nestedmenu.nestedmenu("up", event); - break; - case $.ui.keyCode.RIGHT: - nestedmenu.nestedmenu("down", event); - break; - case $.ui.keyCode.DOWN: - menu.next(event); - event.preventDefault(); - break; - case $.ui.keyCode.ENTER: - case $.ui.keyCode.TAB: - menu.select(); - nestedmenu.nestedmenu("hide"); - event.preventDefault(); - break; - case $.ui.keyCode.ESCAPE: - nestedmenu.nestedmenu("hide"); - break; - default: - clearTimeout(menu.filterTimer); - var prev = menu.previousFilter || ""; - var character = String.fromCharCode(event.keyCode); - var skip = false; - if (character == prev) { - skip = true; - } else { - character = prev + character; - } - - var match = menu.widget().children("li").filter(function() { - return new RegExp("^" + character, "i").test($("a", this).text()); - }); - var match = skip && match.index(menu.active.next()) != -1 ? match.next() : match; - if (!match.length) { - character = String.fromCharCode(event.keyCode); - match = menu.widget().children("li").filter(function() { - return new RegExp("^" + character, "i").test($(this).text()); - }); - } - if (match.length) { - menu.activate(event, match); - if (match.length > 1) { - menu.previousFilter = character; - menu.filterTimer = setTimeout(function() { - delete menu.previousFilter; - }, 1000); - } else { - delete menu.previousFilter; - } - } else { - delete menu.previousFilter; - } - } - }); - }); - </script> - <style> - body { font-size:62.5%; } - .ui-menu { width: 200px; position: absolute; } - .ui-menu .ui-icon { float: right; } - </style> -</head> -<body> - -<button>Show context menu</button> - -<ul id="menu"> - <li> - <a href="#">Amsterdam</a> - <ul> - <li><a href="#">Aberdeen</a></li> - <li><a href="#">Ada</a></li> - <li> - <a href="#">Adamsville</a> - <ul> - <li><a href="#">Anaheim</a></li> - <li> - <a href="#">Cologne</a> - <ul> - <li><a href="#">Mberdeen</a></li> - <li><a href="#">Mda</a></li> - <li><a href="#">Mdamsville</a></li> - <li><a href="#">Mddyston</a></li> - <li><a href="#">Mmesville</a></li> - </ul> - </li> - <li><a href="#">Frankfurt</a></li> - </ul> - </li> - <li><a href="#">Addyston</a></li> - <li><a href="#">Amesville</a></li> - </ul> - </li> - <li><a href="#">Anaheim</a></li> - <li><a href="#">Cologne</a></li> - <li><a href="#">Frankfurt</a></li> - <li> - <a href="#">Magdeburg</a> - <ul> - <li><a href="#">Mberdeen</a></li> - <li><a href="#">Mda</a></li> - <li><a href="#">Mdamsville</a></li> - <li><a href="#">Mddyston</a></li> - <li><a href="#">Mmesville</a></li> - </ul> - </li> - <li><a href="#">Munich</a></li> - <li><a href="#">Utrecht</a></li> - <li><a href="#">Zurich</a></li> -</ul> - -<div class="ui-widget" style="margin-top:2em; font-family:Arial"> - Log: - <div id="log" style="height: 400px; width: 300px; overflow: auto;" class="ui-widget-content"></div> -</div> - -</body> -</html> |