Javascript 检测鼠标悬停/鼠标单击,而不考虑z顺序/图层级别

Javascript 检测鼠标悬停/鼠标单击,而不考虑z顺序/图层级别,javascript,dom,Javascript,Dom,是否有一种方法可以检测位于其他HTML元素后面但不在同一DOM路径内的元素上的鼠标事件(悬停、单击等)(即事件不会出现在该元素上) 一个简单的例子来阐明我的意思: 目前,除了在第一个公共父级上注册事件处理程序(在上面的示例中为)并检查事件是否发生在相关元素的上方之外,我没有看到其他选项。问题是,对于许多元素,这可能会变得非常低效 接下来,我会尝试捕捉多个OpenLayer层上标记的鼠标事件,这是不支持的,即开即用(事件仅适用于顶层)。在较新的浏览器上,您可以使用指针事件:无 #cover {

是否有一种方法可以检测位于其他HTML元素后面但不在同一DOM路径内的元素上的鼠标事件(悬停、单击等)(即事件不会出现在该元素上)

一个简单的例子来阐明我的意思:

目前,除了在第一个公共父级上注册事件处理程序(在上面的示例中为
)并检查事件是否发生在相关元素的上方之外,我没有看到其他选项。问题是,对于许多元素,这可能会变得非常低效


接下来,我会尝试捕捉多个OpenLayer层上标记的鼠标事件,这是不支持的,即开即用(事件仅适用于顶层)。

在较新的浏览器上,您可以使用
指针事件:无

#cover {
    ...
    pointer-events: none;
}

fiddle:

我想这可能会给你一个开始。谢谢,但这接近我提到的效率低下的自己动手的方法,我真的不喜欢在mousemove上隐藏/显示包含几百个标记的许多层…:-/这仍然只允许我在单个层上接收事件。然而,我有几个带有标记的层,我需要捕捉所有层/事件的事件。实际上,这确实是一个重要的提示。事实证明,只有OpenLayers向量层阻止了鼠标事件,为这些层设置
指针事件:none
可以解决问题(因为我只需要标记上的鼠标事件,而不需要向量)+为了解决我的主要问题。原来的问题还没有解决,我就让它打开了。当你说“更新的浏览器”时,我应该猜到它在IE9上不起作用;IE的嘘声:(@widgesoft,可能“现代”是一个更好的形容词: