【问题标题】:Highcharts Line Chart - Hyperlink on a data pointHighcharts 折线图 - 数据点上的超链接
【发布时间】:2014-03-06 14:07:25
【问题描述】:

我正在开发一个使用 Highcharts API 创建折线图的应用程序。此应用程序涉及绘制日期与时间线图。

我需要为所有或部分数据点提供动态超链接。

正在从数据库表中检索此图表的数据并将其转换为 JSON。然后这个 JSON 被 JavaScript 解析并转换成可以被 Highcharts API 使用的数据数组。在将数据从 JSON 转换为数据数组时,在 JavaScript 中进行了一些数据操作。

Highcharts API 接受由 [x, y] 组合组成的数据数组格式的输入。

由于我需要为所有或部分数据点创建一个动态超链接,因此我创建了另一个包含超链接的数组。

当用户单击特定超链接时,我无法即时从数组中检索超链接 URL。

我尝试使用它,它们是在这个小提琴中使用的,http://jsfiddle.net/awasM/1/

我的代码的 sn-p 如下所示:

series: [{
        name: 'Release',
        data: dataArray,
        URLs: urlArray,
        point: {
            events: {
                click: function() {
                    var someURL = this.series.userOptions.URLs[this.x];
                    if (someURL != "undefined")
                        window.open(someURL);
                }
            }
        }
    }]

但是,在我的例子中,日期(Unix/Epoch 时间格式)在 x 轴上(时间在 y 轴上),所以使用 x 轴值不起作用。

【问题讨论】:

标签: javascript jquery json highcharts


【解决方案1】:

我希望你能匹配这个代码来修复一些东西。

  point: {
             events: {
                      click: function() {
                        var pointObject = this;
                        var pointindex = pointObject.x;
                        var pointdata = pointObject.y;
                        var getIndexOfURL = this.series.userOptions.URLs[pointindex];
                        var getIndexOfData = this.series.userOptions.data[pointindex];   
                        if (getIndexOfURL){
                           window.open('http://'+getIndexOfURL);
                        }

                      }
             }
        }

【讨论】:

  • 感谢您的回复,TimeGuard。但是,我的代码中的限制是 x 轴值是 Unix/Epoch 格式的时间(以毫秒为单位),例如 1394089005000;这是为了获取日期。获取 this.x 将返回此值,而不是单击点的索引。由于这个限制,我无法检索用户点击的点的索引。
  • 你可以试试 this.series.index 作为索引号。在相关行断点后,我使用浏览器的 JS 调试器检查“this”参数属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多