Click事件在SVG中路径的mark-end上不起作用

xia*_*oke 1 svg dom dom-events

我在SVG中创建一个简单的路径,并使用该mark-end属性创建箭头线.然后我将click事件绑定到路径.

我发现单击标记区域时未触发click事件.如何解决这个问题?

alt*_*lus 5

根据规范,这应该被认为是给定的.

11.6.4有关如何渲染标记的详细信息

[...]

标记的渲染效果就好像所引用的"标记"元素的内容被深深地克隆到标记的每个实例的单独的非暴露DOM树中.由于克隆的DOM树是非暴露的,因此SVG DOM不会显示标记的克隆实例.

当指针事件发生时,将通过遍历SVG的DOM树来执行命中测试,从而省略任何未暴露的阴影DOM树.这就是为什么标记实例不可能成为指针事件的目标的原因.

为了澄清,可能有趣的是,在通过CSS规则设置标记实例时也是如此,这是不可行的.只有原来的标记元件,即,声明<marker>的元素,是风格化使用CSS,而克隆的实例通过属性引用marker-start,marker-mid或者marker-end是不可访问的,因此不单独风格化.

CSS2选择器可以应用于原始(即引用)元素,因为它们是正式文档结构的一部分.CSS2选择器不能应用于(概念上)克隆的DOM树,因为它的内容不是正式文档结构的一部分.