如何从代码中的迷你图显示工具提示

时间:2019-02-05 16:19:03

标签: javascript highcharts

我正在尝试创建一个仪表板页面,如果用户单击图形中的某个点,则该点中具有该唯一标识符的所有图形都应使工具提示能够显示。这适用于除迷你图以外的所有图表。下面的实时演示显示了默认的高图迷你图演示,但我的只有一个点(带有一个点的条形图)。错误仍然相同:

  

未捕获的TypeError:无法读取未定义的属性'tooltipOptions'       在a.Tooltip.refresh(highcharts.src.js:22676)

我用来显示/隐藏工具提示的代码是:

function chartPointClick(pointidx) {
    var chartArray = Highcharts.charts;
    for (var i = 0; i < chartArray.length; i++) {
        var thechart = Highcharts.charts[i];
        var theData = thechart.series[0].data;

        if (thechart.renderTo.tagName == 'TD') {
            var theSeries = thechart.series[0]
                console.log(theSeries);
                thechart.tooltip.refresh(theSeries.options.data[0]);
        }
        thechart.redraw();
    }
}

这是通过plotOptions.series.events方法调用的:

events: {
        click: function (event) {
            chartPointClick(event.point.idx);
        }
}

如何激活迷你图工具提示?

实时demo

编辑- 使用不起作用的单个条形图实时demo

1 个答案:

答案 0 :(得分:1)

工具提示refresh方法仅将第一个参数接受为点数组:

    if (thechart.renderTo.tagName == 'TD') {
        var theSeries = thechart.series[0]
        thechart.tooltip.refresh([theSeries.points[0]]);
    }

这里的下一个问题是工具提示的outside选项,这会导致另一个错误。我建议您使用:

td,
th {
    ...
    overflow: visible !important;
}

实时演示:https://jsfiddle.net/BlackLabel/qx31oa7m/

API:https://api.highcharts.com/highcharts/tooltip.outside