jquery - z-index 在右键单击时不起作用

标签 jquery css contextmenu z-index

我正在尝试实现一个右键单击 div 时出现的上下文菜单,类 contextFolder 具有 z-index: 1000

为此,我使用 JQuery 将上下文菜单事件绑定(bind)到 div。这工作正常。我希望此上下文菜单在以下情况下消失

  • 用户左键点击屏幕上的任意位置,
  • 用户右键单击屏幕上除任何其他 div.contextfFolder 之外的任意位置

如果在打开上下文菜单时右键单击其他 div.contextFolder,我希望我当前的上下文菜单消失并在新的 div.contextFolder 上打开一个新菜单。

当我向上下文菜单显示时这样做,

  • 我还使用 height: 100%width: 100%z-index: 100 创建了一个叠加层。
  • 我将左键单击事件绑定(bind)到这个叠加层,这样当它被点击时,
    • 覆盖层已移除,
    • 上下文菜单已隐藏。
  • 我还将上下文菜单绑定(bind)到 overlay 以隐藏上下文菜单并在右键单击除另一个 div.contextFolder 之外的任何点时删除 overlay
  • 为了防止左键单击事件叠加在上下文菜单上,我还将 z-index: 101 分配给上下文菜单。 (叠加层的 z-index 为 100)

这对我来说似乎没问题。(我是 CSS 新手,所以我可能遗漏了一些非常明显的东西)。

一切正常,除了当我右键单击 div.contextFolder 时,当上下文菜单已经在另一个 div.contextFolder 上打开时,它会转到覆盖的上下文菜单事件(隐藏到当前的)。我想打开一个新的。

我已经在最新版本的 Chrome 和 Firefox 中对此进行了测试。

这是 fiddle .

谢谢。

最佳答案

我刚刚为您创建了一个 fiddle 。 我所做的只是修改你的 javascript。

JSFiddle

希望对你有帮助。

PS:我还添加了其他代码来检查菜单初始打开后的点击是否是对菜单子(monad)项的点击

干杯

关于jquery - z-index 在右键单击时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492121/

相关文章:

jquery - 如何找出被点击元素的位置?

html - 没有绝对位置的可滚动 div

c# - 如何仅使用一个上下文菜单从不同的标签复制文本

vb.net - 将处理程序添加到动态创建的上下文菜单

javascript - 使用唯一 ID 动态生成多个范围 slider

javascript - 如何在jquery中添加多个值?

html - 修复 IE 显示链接的 img/footer nav

c# - 启动外部进程后 WPF ContextMenu 仍然可见

javascript - 将 jquery 选项与 $.fn 一起使用会导致错误

javascript - 如何制作视频填充框?