Highcharts: set 'select'在一个点上状态并在鼠标悬停后保持它

Highcharts: set 'select' state on a point and maintain it after mouseover?

本文关键字:状态 鼠标 悬停 select set 一个 Highcharts      更新时间:2023-09-26

我正在使用Highcharts并试图将select状态设置在一个点上并保持该状态。

我可以很好地设置状态,像这样:

var chart = new Highcharts.Chart(options);
chart.get('b').setState('select');

但是当用户将鼠标移到该点上然后离开该点时,状态将被取消设置。

下面是一个JSFiddle示例—尝试将鼠标移到红点上并观察它失去select状态:http://jsfiddle.net/o72xgtfm/1/

鼠标悬停后,如果是select状态,而不是hover状态,不应该保持状态吗?

我所要做的就是将这个点设置为红色,并保持红色。我是否可以设置一个不受鼠标悬停影响的自定义状态?

我最终通过使用:

解决了这个问题。
point.select(true, true);

而不是

point.setState('select');

后者没有文档记录,而前者似乎是官方的处理方式。

似乎状态只是更改为hover,只要您不设置回来,它就不会返回。一切如常

你能做的是跟踪mouseout事件在那一点上,并再次分配状态。但是它会从红色到灰色再到红色闪烁。

我的建议是避免为此目的使用状态。我不知道你的商业案例,但如果它只是关于点的颜色,你可以显式地将它添加到点,而不需要状态:

    data: [
        {'id': 'a', 'x': 185.4, 'y': 66.8}, 
        {'id': 'b', 'x': 177.8, 'y': 75.5, color: "red" }, 
        {'id': 'c', 'x': 180.3, 'y': 93.2}
    ]

小提琴