我有一个带有重叠元素的 SVG,绝对定位。元素包含在层(使用 SVG g
)标签中,因此可能并不总是有一个共同的父级。
在 D3 中,元素可以响应它们捕获的点击事件。但是,重叠元素会阻止底部元素捕获任何点击事件。(由于我的应用程序的设计,我不能随意更改它们的 DOM 顺序 - 这很重要。)我想知道是否有办法在保留拖动事件的同时通过元素传递点击事件 - 几乎就像“抛出“如果可能的话。
由于我仍然需要拖动事件和其他指针事件,我不能使用“指针事件:无”属性。此外,由于这些元素可能没有共同的祖先,因此我不能以这种方式真正循环遍历元素。
我想要的行为是切换 - 单击形状将调用形状的单击处理程序,然后选择该形状。单击所选形状(如果它与另一个形状重叠)将调用所选形状的单击处理程序,该处理程序将“抛出”单击事件,以便它将传递到底层元素。(也许使用类似的东西,说,d3.event.throw
或,喜欢,,return d3.event
或类似的想法)。
这可能吗?