【发布时间】:2012-07-15 13:02:46
【问题描述】:
我正在尝试实现一个上下文菜单,该菜单在右键单击 div 时显示为具有 contextFolder 的类 z-index: 1000。
为此,我使用 JQuery 将 contextmenu 事件绑定到 div。这工作正常。我希望这个上下文菜单在
时消失- 用户左键单击屏幕上的任意位置,
- 用户右键单击屏幕上除任何其他
div.contextfFolder之外的任意位置
如果在打开上下文菜单时右键单击其他div.contextFolder,我希望我当前的上下文菜单消失并在新的div.contextFolder 上打开一个新的。
当我显示到上下文菜单时,要做到这一点,
- 我还使用
height: 100%、width: 100%和z-index: 100创建了一个叠加层。 - 我将左键单击事件绑定到此叠加层,这样当单击它时,
- 覆盖已移除,
- 上下文菜单已隐藏。
- 我还将上下文菜单绑定到
overlay以隐藏上下文菜单并在右键单击除另一个div.contextFolder之外的任何点时删除overlay - 为了防止在上下文菜单上覆盖左键单击事件,我还将
z-index: 101分配给上下文菜单。 (叠加层的 z-index 为 100)
这对我来说似乎一切都很好。(我是 CSS 新手,所以我可能会遗漏一些非常明显的东西)。
一切正常,除非当我在另一个div.contextFolder 上已经打开一个上下文菜单时右键单击div.contextFolder,它会转到覆盖的上下文菜单事件(隐藏到当前一个)。我想打开一个新的。
我已经在 Chrome 和 Firefox 最新版本中对此进行了测试。
这是fiddle。
谢谢。
【问题讨论】:
标签: jquery css contextmenu z-index