]> git.openstreetmap.org Git - rails.git/blob - app/assets/javascripts/menu.js
Fix some issues with the new edit menu code
[rails.git] / app / assets / javascripts / menu.js
1 /*
2  * Open a menu.
3  */
4 function openMenu(anchor, menu, align) {
5   var anchorPosition = anchor.offset();
6   var offset;
7
8   if (align == "left") {
9     offset = 0;
10   } else if (align == "right") {
11     offset = menu.outerWidth() - anchor.outerWidth();
12   }
13
14   menu.show();
15
16   menu.offset({
17     top: anchorPosition.top + anchor.outerHeight(),
18     left: anchorPosition.left - offset
19   });
20 }
21
22 /*
23  * Setup a menu, triggered by hovering over an anchor for a given time.
24  */
25 function createMenu(anchorid, menuid, align) {
26   var $anchor = $("#" + anchorid);
27   var $arrow = $("#" + anchorid + " .menuicon");
28   var $menu = $("#" + menuid);
29   var $page = $(":not(#" + menuid + ", #" + anchorid + ")");
30
31   function hide() {
32     $menu.hide();
33     $page.off("click", hide);
34   }
35
36   $arrow.click(function(e) {
37     e.stopPropagation();
38     e.preventDefault();
39     if ($menu.is(":visible")) {
40       $menu.hide();
41       $page.off("click", hide);
42     } else {
43       openMenu($anchor, $menu.show(), align);
44       $page.on("click", hide);
45     }
46   });
47 }