|
20 | 20 | top: 10
|
21 | 21 | }).appendTo(document.body).themeswitcher();
|
22 | 22 |
|
| 23 | + // TODO close other menus when opening a new one |
23 | 24 | $("button").each(function() {
|
24 | 25 | $(this).next().menu({
|
| 26 | + /* top-alignment |
| 27 | + position: function(item) { |
| 28 | + return { |
| 29 | + my: "left top", |
| 30 | + at: "right top", |
| 31 | + of: item.parent() |
| 32 | + } |
| 33 | + }, |
| 34 | + */ |
25 | 35 | select: function(event, ui) {
|
26 | 36 | $(this).hide().prev().focus();
|
27 | 37 | $("#log").append("<div>Selected " + ui.item.text() + "</div>");
|
28 | 38 | }
|
29 | 39 | }).hide();
|
| 40 | + |
| 41 | + // equal height |
| 42 | + //menu.find("ul").height(menu.height()); |
30 | 43 | }).click(function(event) {
|
31 |
| - // TODO required to prevent the click handler below from handling this event |
| 44 | + // required to prevent the click handler below from handling this event |
32 | 45 | event.stopPropagation();
|
33 | 46 | var menu = $("#menu" + this.id).menu("blur").show().position({
|
34 | 47 | my: "left top",
|
35 | 48 | at: "right top",
|
36 | 49 | of: event.pageX > 0 ? event : this
|
37 | 50 | }).focus();
|
38 | 51 | $(document).one("click", function() {
|
39 |
| - menu.hide(); |
| 52 | + menu.menu("closeAll").menu("widget").hide(); |
40 | 53 | })
|
41 | 54 | }).next().keydown(function(event) {
|
42 | 55 | var menu = $(this).data("menu");
|
|
45 | 58 | event.stopPropagation();
|
46 | 59 | switch (event.keyCode) {
|
47 | 60 | case $.ui.keyCode.TAB:
|
| 61 | + menu.closeAll(); |
48 | 62 | menu.widget().hide();
|
| 63 | + $(this).prev().focus() |
49 | 64 | break;
|
50 | 65 | case $.ui.keyCode.ESCAPE:
|
| 66 | + menu.closeAll(); |
51 | 67 | menu.widget().hide();
|
| 68 | + $(this).prev().focus() |
52 | 69 | break;
|
53 | 70 | default:
|
54 | 71 |
|
|
59 | 76 | <style>
|
60 | 77 | body { font-size:62.5%; }
|
61 | 78 | .ui-menu { width: 200px; position: absolute; }
|
62 |
| - #menu2 { height: 200px; overflow: auto; } |
| 79 | + #menu3 { height: 200px; overflow: auto; } |
63 | 80 | </style>
|
64 | 81 | </head>
|
65 | 82 | <body>
|
|
76 | 93 | <li><a href="#">Zurich</a></li>
|
77 | 94 | </ul>
|
78 | 95 |
|
| 96 | +<button id="2">Show context menu 2</button> |
| 97 | +<ul id="menu2"> |
| 98 | + <li> |
| 99 | + <a id="a1" href="#">Amsterdam</a> |
| 100 | + <ul> |
| 101 | + <li><a id="b1" href="#">Aberdeen</a></li> |
| 102 | + <li><a id="b2" href="#">Ada</a></li> |
| 103 | + <li> |
| 104 | + <a href="#">Adamsville</a> |
| 105 | + <ul> |
| 106 | + <li><a href="#">Anaheim</a></li> |
| 107 | + <li> |
| 108 | + <a href="#">Cologne</a> |
| 109 | + <ul> |
| 110 | + <li><a href="#">Mberdeen</a></li> |
| 111 | + <li><a href="#">Mda</a></li> |
| 112 | + <li><a href="#">Mdamsville</a></li> |
| 113 | + <li><a href="#">Mddyston</a></li> |
| 114 | + <li><a href="#">Mmesville</a></li> |
| 115 | + </ul> |
| 116 | + </li> |
| 117 | + <li><a href="#">Frankfurt</a></li> |
| 118 | + </ul> |
| 119 | + </li> |
| 120 | + <li><a href="#">Addyston</a></li> |
| 121 | + <li><a href="#">Amesville</a></li> |
| 122 | + </ul> |
| 123 | + </li> |
| 124 | + <li><a id="a2" href="#">Anaheim</a></li> |
| 125 | + <li><a id="a3" href="#">Cologne</a></li> |
| 126 | + <li><a href="#">Frankfurt</a></li> |
| 127 | + <li> |
| 128 | + <a href="#">Magdeburg</a> |
| 129 | + <ul> |
| 130 | + <li><a href="#">Mberdeen</a></li> |
| 131 | + <li><a href="#">Mda</a></li> |
| 132 | + <li><a href="#">Mdamsville</a></li> |
| 133 | + <li><a href="#">Mddyston</a></li> |
| 134 | + <li><a href="#">Mmesville</a></li> |
| 135 | + </ul> |
| 136 | + </li> |
| 137 | + <li><a href="#">Munich</a></li> |
| 138 | + <li><a href="#">Utrecht</a></li> |
| 139 | + <li><a href="#">Zurich</a></li> |
| 140 | +</ul> |
| 141 | + |
| 142 | + |
79 | 143 | <div class="ui-widget" style="margin-top:2em; font-family:Arial">
|
80 | 144 | Log:
|
81 | 145 | <div id="log" style="height: 400px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
|
82 | 146 | </div>
|
83 | 147 |
|
84 |
| -<button id="2">Show context menu 2</button> |
85 |
| -<ul id="menu2"> |
| 148 | +<button id="3">Show context menu 3</button> |
| 149 | +<ul id="menu3"> |
86 | 150 | <li><a href="#">Aberdeen</a></li>
|
87 | 151 | <li><a href="#">Ada</a></li>
|
88 | 152 | <li><a href="#">Adamsville</a></li>
|
|
0 commit comments