Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dom 单击事件在SVG中的标记路径结束时不起作用_Dom_Svg_Dom Events - Fatal编程技术网

Dom 单击事件在SVG中的标记路径结束时不起作用

Dom 单击事件在SVG中的标记路径结束时不起作用,dom,svg,dom-events,Dom,Svg,Dom Events,我在SVG中创建了一个简单的路径,并使用markend属性来创建箭头线。然后我将click事件绑定到路径 我发现单击标记区域时没有触发单击事件。如何解决此问题?根据规范,这应该被视为一个给定的问题 [……] 标记的呈现效果就像引用的“marker”元素的内容被深度克隆到标记的每个实例的独立的未公开DOM树中。因为克隆的DOM树是非公开的,所以SVG DOM不会显示标记的克隆实例 当指针事件发生时,将通过遍历SVG的DOM树来执行命中测试,从而省去任何未公开的阴影DOM树。这就是为什么标记实例不可

我在SVG中创建了一个简单的路径,并使用
markend
属性来创建箭头线。然后我将click事件绑定到路径


我发现单击标记区域时没有触发单击事件。如何解决此问题?

根据规范,这应该被视为一个给定的问题

[……]

标记的呈现效果就像引用的“marker”元素的内容被深度克隆到标记的每个实例的独立的未公开DOM树中。因为克隆的DOM树是非公开的,所以SVG DOM不会显示标记的克隆实例

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

为了澄清这一点,可能需要注意的是,在通过CSS规则设置标记实例的样式时也是如此,这是不可行的。只有原始标记元素(即声明的
元素)可以使用CSS设置样式,而通过属性
标记开始
标记中间
标记结束
引用的克隆实例无法访问,因此无法单独设置样式

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


您确实需要显示一些代码。它只是SVG中带有标记end的路径。