diff options
author | jzaefferer <joern.zaefferer@gmail.com> | 2011-02-23 12:12:29 +0100 |
---|---|---|
committer | jzaefferer <joern.zaefferer@gmail.com> | 2011-02-23 12:12:29 +0100 |
commit | ddfd5e632cf4a1517c1f28d89c2b9c00429e8ab2 (patch) | |
tree | 71a843fa2ae61e055170dd9e1ef2f4823a20d467 | |
parent | faa4b970a78a78ff93ecbff5cf9bfd679a3a6eda (diff) | |
download | jquery-ui-ddfd5e632cf4a1517c1f28d89c2b9c00429e8ab2.tar.gz jquery-ui-ddfd5e632cf4a1517c1f28d89c2b9c00429e8ab2.zip |
Menu: Introducing position option into flyout menu
-rw-r--r-- | tests/visual/menu/flyoutmenu.html | 16 | ||||
-rw-r--r-- | tests/visual/menu/flyoutmenu.js | 22 |
2 files changed, 30 insertions, 8 deletions
diff --git a/tests/visual/menu/flyoutmenu.html b/tests/visual/menu/flyoutmenu.html index 8240689df..55e7053e5 100644 --- a/tests/visual/menu/flyoutmenu.html +++ b/tests/visual/menu/flyoutmenu.html @@ -28,7 +28,6 @@ // TODO required to prevent the click handler below from handling this event event.stopPropagation(); menu.flyoutmenu("show") - //.attr("tabIndex", 0) .focus() .css({ top: 0, @@ -45,17 +44,28 @@ }); menu.flyoutmenu({ - //input: button, + /* top-alignment + position: function(item) { + return { + my: "left top", + at: "right top", + of: item.parent() + } + }, + */ select: function(event, ui) { $("#log").append("<div>Selected " + ui.item.children("a").text() + "</div>"); button.focus(); } }).hide(); + + // equal height + //menu.find("ul").height(menu.height()); }); </script> <style> body { font-size:62.5%; } - .ui-menu { width: 200px; position: absolute; } + .ui-menu { width: 200px; position: absolute; outline: none; } .ui-menu .ui-icon { float: right; } </style> </head> diff --git a/tests/visual/menu/flyoutmenu.js b/tests/visual/menu/flyoutmenu.js index 665426796..bffecea7f 100644 --- a/tests/visual/menu/flyoutmenu.js +++ b/tests/visual/menu/flyoutmenu.js @@ -6,6 +6,14 @@ (function($) { $.widget("ui.flyoutmenu", { + + options: { + position: { + my: "left top", + at: "right top" + } + }, + _create: function() { var self = this; this.active = this.element; @@ -90,14 +98,18 @@ $.widget("ui.flyoutmenu", { // TODO restrict to widget //only one menu can have items open at a time. $(document).find(".ui-menu-flyout").not(submenu.parents()).hide(); + + var position = $.extend({}, { + of: this.activeItem + }, $.type(this.options.position) == "function" + ? this.options.position(this.activeItem) + : this.options.position + ); + submenu.show().css({ top: 0, left: 0 - }).position({ - my: "left top", - at: "right top", - of: this.activeItem - }); + }).position(position); }, _select: function(event) { event.stopPropagation(); |