单击highchart列上的链接时出错

时间:2013-06-12 12:56:54

标签: javascript highcharts highstock

我收到错误

{"error": "Please use POST request"}

点击链接时,我启用了柱形图中的列。导致此错误的原因是什么?如何克服此错误。

我的系列

series: [{
            name: 'Capital',
            data: [1000000.00, 1000000.00, 1000000.00, 1000000.00, 900000.00],
            url:'http://www.google.com'
        }, {
            name: 'Material',
            data: [8753.15, 529.00, 5620.00, 35000.00, 30988.86]
        }, {
            name: 'HR',
            data: [66400.00, 320000.00, 488000.00, 48000.00, 512000.00]
        }, {
            name: 'Equipment',
            data: [0.00, 160000.00, 1600000.00, 32000.00, 64000.00]
        }, {
            name: 'Petty Cash',
            data: [10000.00, 100000.00, 100000.00, 10000.00, 150000.00]
        }],

绘图选项

 plotOptions: {
            series: {
                cursor: 'pointer',
                point: {
                    events: {
                        click: function (e) {
                            location.href = this.options.url;
                             e.preventDefault();
                        }
                    }
                }
            }
        }

我的合并代码摆弄了here

这是在点击时提供导航链接的正确方法吗?

2 个答案:

答案 0 :(得分:1)

你有两个错误:

1)在点击事件中你正在使用this.options.url,这是未定义的,而应该是(根据你的系列配置)this.series.options.url

2)在plotOptions.series下添加point.events:

    plotOptions: {
        series: {
            cursor: 'pointer',
            point: {
                events: {
                    click: function () {
                        console.log(this.series.options.url);
                        location.href = this.series.options.url;
                    }
                }
            }
        }
    }

并且'工作' jsFiddle for you:http://jsfiddle.net/3TRL6/5/show/ - (适用于Capital系列)。完整代码在此处:http://jsfiddle.net/3TRL6/5/

答案 1 :(得分:0)

如果您使用jsFiddle测试代码,则可能会收到此错误“{”错误“:”请使用POST请求“}”,因为您要求的是非安全网站“url:' http https ://jsfiddle.net/'。 尝试使用Https替换Http

请找到jsFiddle链接https://jsfiddle.net/ajaytripathi10/dk5ogkj9/1/

plotOptions: {
  series: {
    borderWidth: 0,
    dataLabels: {
      enabled: true,
      format: '{point.y:.1f}'
    },
    cursor: 'pointer',
    point: {
      events: {
        click: function() {
          console.log(this.options.url);
          location.href = this.options.url;
        }
      }
    }
  }
},