Highcharts-'mouseOut'事件后的'setState'

问题描述 投票:0回答:1

我正在尝试为意大利面条图编写模板(请参见here)。这是my fiddle

这个想法是只有一个系列可以被激活。加载时,活动序列是末尾具有最高值的序列。我通过chart.events.load:

实现了这种效果
chart: {
  events: {
    //O N   L O A D
    load: function() {
      var chart = this,
        series = chart.series,
        max = findSeriesMax(series),
        points = series[max].points,
        p = points[points.length - 1];

      chart.series.forEach(function(s) {
        s.setState('inactive', true);
      });
      chart.series[max].setState('hover');
      chart.xAxis[0].drawCrosshair(null, p); //IT WORKS :)
      chart.tooltip.refresh(p);
    },
  },
},

我希望在mouseOut上将图表“重置”为其原始显示。但是,mouseOut之后不会更新系列的状态:

plotOptions: {
  series: {
    stickyTracking: true,
    events: {
      mouseOut: function() {
        var chart = this.chart,
          series = chart.series,
          max = findSeriesMax(series),
          points = series[max].points,
          p = points[points.length - 1];

        chart.series.forEach(function(s) {
          s.setState('inactive', true);
        });
        chart.series[max].setState('hover');
        chart.xAxis[0].drawCrosshair(null, p); //DOESN'T WORK :(
        chart.tooltip.refresh(p);

      }
    }
  }
},

三个问题:

  1. 为什么在mouseOut之后不更新系列的状态?
  2. 是否有诸如chart.events.mouseOut之类的东西?使用series.events.mouseOut重置工具提示时,在跟踪序列时会引起一些快速移动(即使使用stickyTracking:true)
  3. 为什么drawCrosshair(null,p)在加载时起作用,但在mouseOut中却不起作用?
highcharts
1个回答
0
投票

我在容器上添加了一个事件(mouseleave),现在一切正常:

© www.soinside.com 2019 - 2024. All rights reserved.