我使用Highcharts并尝试在某个点上设置select
状态并保持状态。
我可以将状态设置得很好,就像这样:
var chart = new Highcharts.Chart(options);
chart.get('b').setState('select');
但是当用户将鼠标悬停在该点之外时,该状态将被取消。
这是一个JSFiddle示例 - 尝试将鼠标悬停在红点上并观察它失去select
状态:AsyncCompletedEventArgs.UserState
即使在鼠标悬停之后,状态仍然不能维持,因为它是select
状态,而不是hover
?
我想要的只是将点设置为红色,并保持红色。我是否可以设置一个不受鼠标悬停影响的自定义状态?
答案 0 :(得分:2)
我最终通过使用:
设法解决了这个问题point.select(true, true);
而不是
point.setState('select');
后者没有证件,而第一种似乎是官方的做事方式。
答案 1 :(得分:0)
似乎状态只是更改为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}
]