【发布时间】:2013-12-13 16:04:24
【问题描述】:
我有多个不同组中的 SVG 元素。它们相互重叠。示例:
<svg id="board" width="100%" height="80%">
<g id="terrain" class="layer">
<path d="M-32,-32L32,-32 32,32 -32,32Z" transform="translate(0, 0)" class="mote terrain hill"></path>
</g>
<g id="guy" class="layer">
<path d="M-21...Z" transform="translate(192, 448)" class="mote guy"></path>
</g>
</svg>
当单击与两者都匹配的 x、y 位置时,我想知道两者都被单击的所有内容。如果我将每个都绑定到“点击”事件,则只有顶部的事件处理程序会被调用。这是合理的,虽然不是我想要的。
我正在考虑创建一个最顶层并让它捕获所有点击,然后确定应该通知其他层中的哪些元素。如果可能的话,我想避免很多跟踪。有更简单的方法吗?
【问题讨论】:
-
您提出的解决方案对我来说听起来很合适;由于元素是兄弟元素,事件不会通过它们冒泡,因此您需要捕获委托事件并确定哪些元素受到影响。
-
这个问题已经回答here
-
问题尚未得到解答。
标签: javascript svg layer z-order