我正在为我的 Google 饼图创建自定义图例,因为我需要更多控制。
我希望我的图例与图表的交互方式与默认图例完全相同。我可以将侦听器添加到选择相应切片的图例行中,例如:
myChart.setSelection([{row: selectedIdx]);
这会导致切片像我单击切片一样进行选择,也就是说,它将硬线渲染为距切片几个像素的位置。
没关系,但我真正想要的是复制切片鼠标悬停,即只是切片的“突出显示”。
我认为图表可能正在侦听鼠标悬停,然后检查事件以确定要突出显示的切片,因此我为其附加了一个 onmouseover 侦听器。这似乎是正确的,因为当我将鼠标悬停在一个饼片上时,传入的偶数是:
Object {row: 1, column: null}
在我的图例行侦听器中,然后我触发了图表鼠标悬停并传递了相同的事件:
google.visualization.events.trigger(myChart, 'onmouseover', {row: selectedIndex, column: null});
但这没有用。我还尝试通过显式创建 JS 对象以及在所选索引上使用 parseInt。在 Firefox 调试器中,从侦听器的角度来看,这两件事(实际的鼠标悬停、图例触发器)看起来完全相同,但只有实际的鼠标悬停导致切片突出显示。
这让我很困惑。任何人都知道如何做到这一点?理想情况下,我正在寻找类似的东西:
var slice = myChart.getSlice(someIndex);
slice.setHighlighted();
谢谢