将事件添加到条形图的 X 轴标签

add event to x-axis labels of bar highchart

本文关键字:标签 条形图 事件 添加      更新时间:2023-09-26

我正在尝试通过单击字符 x 轴上的标签文本来检索它。我正在使用条形图,代码如下:

var chart = new Highcharts.Chart({
    chart: {
        type: 'column',
        backgroundColor: '#eaedf1',
        zoomType: 'x',
        renderTo: 'container'
    },
    plotOptions: {
        series: {
            cursor: 'pointer',
            pointWidth: 10,
            point: {
                events: {
                    click: function (event) {
                        console.log(event.point.name + " " + this.y);
                    }
                }
            }
        }
    },
    title: {
        text: 'Total Flow Types'
    },
    xAxis: {
        type: 'category',
        labels: {
            rotation: -90
        }
    },
    yAxis: {
        min: 0,
        title: {
            text: 'millions'
        }
    },
    legend: {
        enabled: false
    },
    series: [{
        name: 'Flow Types'
    }]
}); 

然后通过单击一个按钮,图表将使用 ajax 填充,它工作正常。通过检查图表的dom,我看到每个标签都是文本/文本。它们是g/元素的一部分,具有类highcharts-axis-labels highcharts-xaxis-labels。所以我尝试使用 jquery 检索值,如下所示:

$('body').on('click', 'g.highcharts-axis-labels.highcharts-xaxis-labels text',   function () {
    console.log($(this).text());
}); 

或者只是

$('body').on('click', 'text',   function () {
    console.log($(this).text());
}); 

这一切都是document.ready函数的一部分。不幸的是,这些都无法检索 x 轴标签的文本?

而不是:

$('body').on('click', 'g.highcharts-axis-labels.highcharts-xaxis-labels text', function () {
    console.log($(this).text());
});

使用这个:

$('.highcharts-xaxis-labels text').on('click', function () {
    console.log($(this).text());
});

不应使用dot 连接类highcharts-axis-labelshighcharts-xaxis-labels。而且类highcharts-xaxis-labels也足以添加事件。这是小提琴:http://jsfiddle.net/8sxLr5j8/

您可以使用允许这样做的扩展。