我正在 d3 中创建一个饼图,并希望给定切片的名称和值出现在悬停时:
@graph.append('path')
.attr('d', @arc)
.style('fill', (svg) => @color(svg.data.value))
.attr('class', 'pie-slice')
.on('mouseover', @pieSliceMouseOver)
.on('mouseout', @pieSliceMouseOut)
.append('text')
.style('stroke', 'black')
.append('textPath')
.text((svg) -> "#{svg.data.name}: #{svg.data.value}")
这将输出以下内容(对于一块馅饼)
<path d="M-101.9924541587831,53.12757565208981A115,115 0 0,1 -2.1124459603436008e-14,-115L0,0Z" style="fill: #37823e;" class="pie-slice">
<text style="stroke: #000000;">
<textPath>401K: 82.28</textPath>
</text>
</path>
但是文本本身没有显示。如果我在 Chrome 中突出显示路径节点,浏览器会正确突出显示切片,但向下移动到文本,则节点不可见。
mouseover 和 mouseout 处理程序按设计工作,但文本根本不会出现。