9

我有一个根据数据库中的数据呈现数据的 highcharts。我正在使用“bar”类型。现在我希望当用户单击该栏时,它会重定向到特定页面或例如另一个网站。我用谷歌搜索但无法得到答案。这是我正在使用的代码。

$(function () {
var chart;
$(document).ready(function() {
    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'bar'
        },
        title: {
            text: 'Historic World Population by Region'
        },
        subtitle: {
            text: 'Source: Wikipedia.org'
        },
        xAxis: {
            categories: ['Africa', 'America', 'Asia', 'Europe', 'Oceania'],
            title: {
                text: null
            }
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Population (millions)',
                align: 'high'
            },
            labels: {
                overflow: 'justify'
            }
        },
        tooltip: {
            formatter: function() {
                return ''+
                    this.series.name +': '+ this.y +' millions';
            }
        },
        plotOptions: {
            bar: {
                dataLabels: {
                    enabled: true
                }
            }
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'top',
            x: -100,
            y: 100,
            floating: true,
            borderWidth: 1,
            backgroundColor: '#FFFFFF',
            shadow: true
        },
        credits: {
            enabled: false
        },
        series: [{
            type: 'bar',
                    point: {
                      events: {
                        click: function(e) {

                           this.slice();
var clicked = this;
setTimeout(function(){
location.href = clicked.config[2];
                           }, 500)
                           e.preventDefault();
                        }
                     }
                   },
data: [['Com',107,'http://www.google.com']]
        }]
    });
});

});
4

2 回答 2

12

这是有关如何执行此操作的文档的网址:http: //api.highcharts.com/highcharts#plotOptions.series.point.events.click

这是一个很好的示例:http: //jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/plotoptions/series-point-events-click-网址/

您要更新的代码部分在这里:

plotOptions: {
        bar: {
            dataLabels: {
                enabled: true
            }
        },
        series: {
            point: {
                events: {
                    click: function(){
                       // do whatever here
                    }
                }
            }
        }

    }
于 2012-10-04T07:19:22.273 回答
0

Uncaught TypeError: Object #<Object> has no method 'slice'

这是以下行生成的错误。

this.slice();

去掉它。

演示

上面的演示将仅为您绑定事件的系列触发点击,如果您想将其绑定到所有系列,请使用@Jamiec 建议。

于 2012-10-04T17:48:58.460 回答