]> git.openstreetmap.org Git - rails.git/blobdiff - public/javascripts/menu.js
Merge branch 'master' into openstreetbugs
[rails.git] / public / javascripts / menu.js
index 9f88f0e0cbea4ba8096e74a53533af3d6f0e3763..5b4c3050eb439fc1e66a0798cc85dc14a604baa7 100644 (file)
@@ -10,6 +10,14 @@ function openMenu(anchor, menu) {
   });
 }
 
   });
 }
 
+/*
+ * Close a menu.
+ */
+function closeMenu(menu) {
+  clearTimeout(menu.timer);
+  menu.style.display = "none";
+}
+
 /*
  * Callback called when the mouse enters a menu anchor.
  */
 /*
  * Callback called when the mouse enters a menu anchor.
  */
@@ -58,7 +66,9 @@ function createMenu(anchorid, menuid, delay) {
   var anchor = $(anchorid);
   var menu = $(menuid);
 
   var anchor = $(anchorid);
   var menu = $(menuid);
 
+  anchor.observe("mouseup", function (event) { closeMenu(menu) });
   anchor.observe("mouseover", function (event) { enterMenuAnchor(anchor, anchor, menu, delay) });
   anchor.observe("mouseout", function (event) { leaveMenuAnchor(event, anchor, menu) });
   anchor.observe("mouseover", function (event) { enterMenuAnchor(anchor, anchor, menu, delay) });
   anchor.observe("mouseout", function (event) { leaveMenuAnchor(event, anchor, menu) });
+  menu.observe("mouseup", function (event) { closeMenu(menu) });
   menu.observe("mouseout", function (event) { leaveMenu(event, anchor, menu) });
 }
   menu.observe("mouseout", function (event) { leaveMenu(event, anchor, menu) });
 }