在我的 svg 图像中,我绘制了很多路径(和其他元素),其中一些是部分透明的并且可能相互重叠。
我如何确保所有元素的监听器都接收到鼠标事件(例如单击),而不仅仅是最顶层的。
基本示例(假设 A、B、C 具有相同的坐标和大小):
<g id="parent">
<rect id="A" .../>
<rect id="B" .../>
<rect id="C" .../>
</g>
在此示例中,期望的结果是矩形 C(最顶部)上的点击被 A、B、C 上的监听器注册
使用谷歌我了解到我可以通过向父级注册一个监听器然后检查受影响的子元素来自己发送事件,但是我想知道是否有更好的解决方案或库。
最佳答案
使用 jquery++ 你可以找到给定位置的元素,即使它们在其他元素后面,你可以做一些简单的事情,比如:
$("#parent").on("click",function(ev){
$(this).children().within(ev.offsetX,ev.offsetY)...; //filter the elements
});
关于javascript - 在重叠元素上注册鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19324375/