如何在鼠标悬停时获取highcharts图形点的值?

时间:2015-05-05 22:28:18

标签: javascript highcharts

我正在使用以下逻辑创建一个highcharts图表系列:

this.series = [];

for(var i in headerData) {
    var header = headerData[i];

    this.series.push({
        name: header.name,
        data:[],
        yAxis:parseInt(header.axis),
        id: header.id,
        type: 'column',
        zIndex: 1,
        events: {
            mouseOver: function (e) {
                console.log('Point: ', e.point);
            }
        }
    });
}

read该点是事件e的属性,但在我的情况下e.pointundefined。我也找不到e中关于moused-over点的任何内容。

是否有人知道如何获取已被鼠标悬停的点的x值和y值?

2 个答案:

答案 0 :(得分:6)

您需要在plotOptions属性上设置Highcharts。以下是$(function () { var $reporting = $('#reporting'); $('#container').highcharts({ title: { text: 'Mouse events demo' }, subtitle: { text: 'On point mouse over or mouse out, the values should be reported in top left' }, plotOptions: { series: { point: { events: { mouseOver: function () { var chart = this.series.chart; if (!chart.lbl) { chart.lbl = chart.renderer.label('') .attr({ padding: 10, r: 10, fill: Highcharts.getOptions().colors[1] }) .css({ color: '#FFFFFF' }) .add(); } chart.lbl .show() .attr({ text: 'x: ' + this.x + ', y: ' + this.y }); } } }, events: { mouseOut: function () { if (this.chart.lbl) { this.chart.lbl.hide(); } } } } }, tooltip: { enabled: false }, series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] }] }); }); API文档中的示例:

{{1}}

Demo

答案 1 :(得分:0)

如果您尝试从chart.hoverPoint事件外部找出当前被忽略的过点,您也可以使用mouseOver。然而,这不在文档中,这可能意味着它可以在将来发生变化。