我有一个 SVG,其中有更多的 SVG,其中包含可变数量的矩形元素,它们都是从数据对象生成的。这是一般层次结构:
<svg class="parent-svg">
<svg class="child-svg">
<rect />
<rect />
</svg>
<svg class="child-svg">
<rect />
<rect />
</svg>
</svg>
我已将 mouseenter/mouseleave 事件绑定到.child-svg
元素,但我发现当我的鼠标移动到<rect>
元素之间的空白处时事件正在触发。我对 mouseenter/mouseleave 的理解是,当光标进入/离开子元素时它们不应该触发——这似乎是你期望 mouseover/mouseout 的行为。当然,我最理想的情况是 mouseenter/mouseleave 事件仅在我离开每个部分时触发(我已经使用颜色进行了描述)。
这是相关的小提琴:http: //jsfiddle.net/ysim/yVfuK/4/
编辑:我尝试给.child-svg
元素一个高度和宽度,但这似乎也不起作用:http: //jsfiddle.net/ysim/gMXuU/3
编辑:这是解决方案的小提琴,根据@pornel的建议修复:http: //jsfiddle.net/ysim/HUHAQ/
谢谢!