nielsv
nielsv

Reputation: 6830

Highcharts + set event click from options in jquery

I have an array options like this:

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: []
}

As you can see I don't do anything on the click function.

I create the highcharts in jQuery in a foreach (so I create multiple charts).

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

Now how can I add an event click like I did with renderTo?

Upvotes: 2

Views: 1214

Answers (1)

Paweł Fus
Paweł Fus

Reputation: 45079

You probably need to read about closures in javascript - otherwise you add the same event for each chart.

Another solution is to create array of id's for charts and then use: options.chart.events.click = function() { window.location.href = '/path/' + ids[index]; };

Upvotes: 1

Related Questions