Javascript Highcharts-手动触发点上的悬停事件

Javascript Highcharts-手动触发点上的悬停事件,javascript,highcharts,Javascript,Highcharts,当您将鼠标悬停在Highcharts图表中的某个点上时,您会在光标(或其他符号)下看到一个放大的圆圈。我想手动触发悬停效果 我知道我可以在该点上手动触发鼠标悬停事件,但这并没有给出我想要的图表上的放大符号 我通过查看源代码调用“setState('hover');”找到了答案,该调用位于要突出显示的点上 只需添加一个重要信息: 对于StockChart,此解决方案不起作用: 在这种情况下,您必须更换: chart.tooltip.refresh(chart.series[0].data[i]);

当您将鼠标悬停在Highcharts图表中的某个点上时,您会在光标(或其他符号)下看到一个放大的圆圈。我想手动触发悬停效果


我知道我可以在该点上手动触发鼠标悬停事件,但这并没有给出我想要的图表上的放大符号

我通过查看源代码调用“setState('hover');”找到了答案,该调用位于要突出显示的点上

只需添加一个重要信息:

对于StockChart,此解决方案不起作用:

在这种情况下,您必须更换:

chart.tooltip.refresh(chart.series[0].data[i]);
为此:

chart.tooltip.refresh([chart.series[0].points[i]]);

一种可能的解决方案可用。

要给出更直接的答案(例如,如果您无法访问highcharts实例):


在触发鼠标悬停事件之前,需要创建鼠标悬停事件,并为其指定正确的pageX和pageY属性。

下面是一个示例,说明如何以编程方式选择(悬停)序列中的最后一个有效点:

  // Find last not-null point in data
  let last = data.indexOf(null) - 1;
  last = (last === -2) ? data.length - 1 : last;
  const lastPoint = this.series[0].points[last];

  // Trigger the hover event 
  lastPoint.setState('hover');
  lastPoint.state = '';  // You need this to fix hover bug
  this.tooltip.refresh(lastPoint); // Show tooltip


您希望何时触发?你能给我举个例子吗?在我的特殊情况下,我想在悬停在另一个点上时触发效果。我知道可以在工具提示上显示“共享”标志,但这不是我想要的。我想在同一系列中的另一个点上触发悬停效果,但在不同的x,y处。若要删除悬停状态,请在没有参数的情况下调用“setState();”。这是一个JSFIDLE,用于设置悬停状态并显示工具提示:(通过)。请阅读您的答案。杰出的我希望我能在两天前看到它。会节省我很多时间和精力。当然有我的投票权……我在github上提出了一个问题,即使用
setState('hover')
时十字光标没有显示$(“tspan:contains(您的图例)”).trigger('mouseover');,工具提示正常工作,但没有设置其他系列的不透明度,但为了在多个系列的情况下突出显示特定系列,我必须手动触发该系列图例上的鼠标悬停事件我遇到了这个问题,数据点刷新不起作用,直到添加了外[]括号,谢谢。