2

我有一个这样的数组选项:

var options = {
    chart: {
        type: 'bar',
        events: {
            click: function(event) {
                
            }
        }
    },
    xAxis: {
        categories: '',
        title: {
            text: null
        }
    },
    yAxis: {
        min: 0,
        title: {
            text: 'Aantal keer gekozen',
            align: 'high'
        },
        labels: {
            overflow: 'justify'
        }
    },
    tooltip: {
        //valueSuffix: ' aantal keer gekozen'
    },
    plotOptions: {
        bar: {
            dataLabels: {
                enabled: true,
                color: 'black',
                formatter: function() {
                    if (this.y === 0) {
                        return null;
                    } else {
                        return this.y;
                    }
                }
            },
            stacking: 'normal'
        }
    },
    legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'top',
        x: -40,
        y: 100,
        floating: true,
        borderWidth: 1,
        backgroundColor: '#FFFFFF',
        shadow: true
    },
    credits: {
        enabled: false
    },
    exporting: {
        enabled: true
    },
    series: []
}

如您所见,我对点击功能没有做任何事情。

我在 jQuery 中创建了 highcharts foreach(所以我创建了多个图表)。

options.chart.renderTo = 'container' + index;
chart = new Highcharts.Chart(options);

现在我怎样才能像我一样添加一个事件点击renderTo

4

1 回答 1

1

您可能需要阅读 javascript 中的闭包 - 否则您会为每个图表添加相同的事件。

另一种解决方案是为图表创建 id 数组,然后使用options.chart.events.click = function() { window.location.href = '/path/' + ids[index]; }

于 2013-09-13T08:47:43.320 回答