javascript - Highcharts 工具提示中的可点击链接

标签 javascript html url highcharts tooltip

我有工具提示,里面有一个数据列表。我希望每个数据都是一个链接,可以重定向到该特定数据的页面。现在 Highcharts 工具提示的问题是它相对于 x 轴发生变化。一旦 x 轴发生变化,工具提示就会更改为 x 轴上的相应组件。因此,如果我的工具提示与链接一起使用,一旦我移动到单击链接,工具提示就会发生变化。为了解决这个问题,我想出了一种方法来在您单击工具提示时立即修复工具提示。这是它的代码。

plotOptions: {
        series: {
            cursor: 'pointer',
            point: {
                events: {
                    click: function() {
                        if (cloneToolTip)
                        {
                            chart.container.firstChild.removeChild(cloneToolTip);
                        }
                        cloneToolTip = this.series.chart.tooltip.label.element.cloneNode(true);
                        chart.container.firstChild.appendChild(cloneToolTip);
                    }
                }
            }
        }
    },

但即便如此,我也需要在工具提示中制作可点击的链接。我在 stackoverflow 上看到了一些他们已经完成的线程,但它在那里也不起作用。它将它们显示为链接,但它们不可点击。在此处发布一个工作示例。

JSFiddle working example

如有任何帮助,我们将不胜感激。

编辑 1:- 这些都是我拥有的系列。可能是因为其他一些图表,工具提示被隐藏了。

series: [{
        type: 'column',
        name: 'Success',
        color: '#7deda2',
        yAxis: 1,
        tooltip: {
            pointFormatter: function(){
              return "Success: " + this.y + "%" + "<br />" + "Success docs: " + toolTipSuccess[this.series.data.indexOf( this )] + "<br />";
            }
        },
        data: [{{barSuccess}}]
    }, 
    {
      type: 'scatter',
      name: 'Incidents',
      yAxis: 1,
      data: scatterData,
      color: '#FFAE19',
      tooltip: {
            pointFormatter: function() {
              var string = '';
              Highcharts.each(toolTip[this.series.data.indexOf(this)], function(p) {
                string += '<a href="http://www.google.com">' + p + '</a><br>'
              });
              return string + "<br />";
            }
          },
    },
    {
        type: 'spline',
        name: 'Failure',
        tooltip: {
            pointFormatter: function(){
              return "Failure: " + this.y + "%" + "<br />" + "Failure docs: " + toolTipFailure[this.series.data.indexOf( this )] + "<br />";
            }
        },
        data: [{{barFailure}}],
        marker: {
            lineWidth: 3,
            lineColor: Highcharts.getOptions().colors[8],
            fillColor: 'red'
        }
    },
    {{#if lu}}
       {
        type: 'spline',
        name: 'Unknown',
        tooltip: {
            pointFormatter: function(){
              return "Unknown: " + this.y + "%" + "<br />" + "Unknown docs: " + toolTipUnknown[this.series.data.indexOf( this )] + "<br />";
            }
        },
        data: [{{barUnknown}}],
        marker: {
            lineWidth: 3,
            lineColor: 'blue',
            fillColor: '#87CEFA'
        }
    }
    {{/if}}

最佳答案

工具提示的 useHTML 属性应该在全局工具提示属性中定义 - 但对于 <a>是不够的。更改 pointerEvents 属性是必要的 - 您可以在此处查看问题:https://github.com/highcharts/highcharts/issues/5722

tooltip: {
  useHTML: true,
  style: {
    pointerEvents: 'auto'
  }
},

示例:http://jsfiddle.net/SeCAB/216/

关于javascript - Highcharts 工具提示中的可点击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40012916/

相关文章:

javascript - 覆盖 React 组件方法

javascript - 与 Promise 一起使用时,异步 waterfall 不执行下一个回调方法

javascript - 带有ajax的Django投票按钮

javascript - jQuery:从回调中选择父属性

html - 垂直和水平对齐的两列布局,具有可变高度

html - 如何将一个文本 div 环绕在 DOM 中作为同级跟随的另一个文本 div 周围?

objective-c - 如何从网络启动 native OSX 应用程序(并传递参数)?

java - 使用 Htmlunit 在 Java 网页上按下切换按钮

url - 如何从 HTTP URL 下载文件?

asp.net-mvc-3 - URL 路径参数用例