2010-12-15 61 views
1

我有一个类似于thisthis的问题。我有一个菜单出现在按钮点击的其他内容之上。如果用户点击菜单外的任何位置,我希望菜单关闭。有很多其他'东西'可以点击,而菜单是 - 我想要点击任何关闭我的菜单。实际上,我希望菜单是模态的,仍然能够看到它背后的内容,并且任何外部点击都会关闭它,而不会激活您点击的内容。'底层'div捕捉'外部'事件

我创建了一个绝对位置的div与Z顺序就在菜单容器div下面。 '底层'div有一个点击事件来关闭菜单。当底层div具有背景颜色,所以我可以看到它,一切都很好。但我希望这个底层div是透明的。当我删除背景颜色时,它不再获得点击事件!

对链接问题的回答建议将单击事件添加到正文或文档本身以关闭菜单,但我不想那么做,因为菜单不会一直处于启动状态。另外,一旦它关闭,就没有必要捕捉点击。

我需要对'底层'div做些什么才能使它透明,但仍然捕获点击事件?

编辑:似乎什么工作,但没有什么意义的是:

  1. 风格底层的div有背景色。
  2. 在jQuery中,其不透明度设置为0。

现在DIV是透明并捕获事件。 ???

+0

这是所有浏览器或只是ie的问题? http://coilmedia.com/post/2010/can-not-click-or-hover-transparent-links-elements-in-internet-explorer/ – dstarh 2010-12-15 21:23:27

+0

IE7,8,和FF3到目前为止...... – n8wrl 2010-12-15 21:26:39

回答

1

透明背景让背景元素点击,通过将其更改为不透明度为0您仍然单​​击背景。这与添加1x1清晰的.gif或.png并在背景上平铺它相同 - 它允许点击某种东西

编辑为包含评论中的链接 - 它完全描述了我的问题:link

谢谢!

+0

这肯定semes成为行为 - 感谢您的确认! – n8wrl 2010-12-15 21:25:59

+0

使其更清晰(无双关语意图)透明的背景是说没有背景,而不是背景,你可以通过看到 – dstarh 2010-12-15 21:28:12

+0

谢谢。我没有做的这个飞跃也意味着它对事件是“透明的”。 ;) – n8wrl 2010-12-15 21:31:35

0

我有类似的问题。我所做的是创建一个名为needsClickInfo的数组,并且每次在屏幕上注册按钮单击时,都会调用存储在needsClickInfo中的对象/函数。当然,您必须更新needsClickInfo中您正在处理的对象/元素的onMouseEnter()onMouseLeave()函数,在本例中为菜单栏。