下面是一个例子。这是Google菜单。如何捕捉“关闭”点击事件?
当你点击齿轮轮(红叉)出现的菜单。当您点击打开菜单(绿色十字)以外的任何地方时,菜单消失。问题是如何捕捉第二个结束事件(绿色十字)。
打开菜单很简单。
var x = document.getElementById("star"); // this is id of the gear-wheel;
var y = document.getElementById("hiddenMenu"); // this is id of the menu with display = none;
x.onclick = function() {
y.style.display = "block";
}
但是如何使它关闭?我试着用“身体”的标签是这样的:
var bar = document.getElementsByTagName("body")[0];
bar.onclick = function() {
if (y.style.display == "block") {
y.style.display = "none";
}
}
但它已被打开后立即关闭菜单。首先,点击“星号”后变成“块”。但随着身体也被点击,这成为“无”之后。如何解决它?为了捕捉正确的目标事件,编写“body”代码真的有必要吗?
是的,这样的解决方案看起来不错,但“模糊”不能applyed到div元素这么简单,unfurtunatly – Green 2012-01-18 10:21:45
@Green为什么不呢?呃模糊不适用于div。好的,你需要别的东西。看起来你需要一个点击处理程序,并检查点击是否在div – Raynos 2012-01-18 16:42:49