aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjzaefferer <joern.zaefferer@gmail.com>2011-02-23 12:12:29 +0100
committerjzaefferer <joern.zaefferer@gmail.com>2011-02-23 12:12:29 +0100
commitddfd5e632cf4a1517c1f28d89c2b9c00429e8ab2 (patch)
tree71a843fa2ae61e055170dd9e1ef2f4823a20d467
parentfaa4b970a78a78ff93ecbff5cf9bfd679a3a6eda (diff)
downloadjquery-ui-ddfd5e632cf4a1517c1f28d89c2b9c00429e8ab2.tar.gz
jquery-ui-ddfd5e632cf4a1517c1f28d89c2b9c00429e8ab2.zip
Menu: Introducing position option into flyout menu
-rw-r--r--tests/visual/menu/flyoutmenu.html16
-rw-r--r--tests/visual/menu/flyoutmenu.js22
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();