javascript - Highcharts : plot line click event for multiple chart

标签 javascript jquery highcharts

我正在使用 highchart 来实现一些向下钻取功能。

我有一个功能可以让用户单击面积图并添加一条线。但后来我发现我的函数有一个错误。这些图表之间应该只有一条红线,但是当用户单击另一个图表时,第一个图表上的现有红线不会被删除。

以下是我分享的图表功能。

  var myPlotLineId = "myPlotLine";

    addPlotLine = function(evt) {
      var point = evt.point;
      var xValue = point.x;
      var xAxis = point.series.xAxis;

      Highcharts.each(xAxis.plotLinesAndBands, function(p) {
        if (p.id === myPlotLineId) {
          p.destroy();
        }
      });
      xAxis.addPlotLine({
        value: xValue,
        width: 1,
        color: 'red',
        id: myPlotLineId
      });
    };

它应该只允许一条红线,因为我使用的是 ID。

以下是目前的情况。 enter image description here

由于我在情节中使用 id ,因此不允许有两行,请参阅我的示例:

http://jsfiddle.net/Xm4vW/74/

I want only ONE RED LINE in total out of many charts

更新1:

我在新的演示中尝试了 redraw() : http://jsfiddle.net/Xm4vW/80/

但这没有帮助。 如果问题不够清楚,请告诉我。

最佳答案

没有像'Highcharts.each(xAxis.plotLinesAndBands, function(p)'这样的东西。通过循环迭代图表并使用'removePlotLine(PlotLineID)'而不是'destroy()':

for(i=0;i<Highcharts.charts.length; i++){
    var chart=Highcharts.charts[i];
    chart.xAxis[0].removePlotLine('myPlotLineId');
}

并在括号中设置 id:

id: 'myPlotLineId'

这里是 jsfiddle http://jsfiddle.net/asadsarwar89/bh4kz9rw/

关于javascript - Highcharts : plot line click event for multiple chart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39564418/

相关文章:

javascript - 我如何使用 d3.js 将数据从 .tsv 绑定(bind)到 SVG 的路径以获得 Choropleth map

javascript - 如何从 anchor 标记的 href 属性中隐藏#div

javascript - 具有可变高度和 Ajax 内容的 jQuery 动画 slider

jquery - 不能使用 $ ('.foo' ).on ('click' , '.bar' , jQuery 和 TypeScript

javascript - 如何打开新图表到相邻的 <div> on bar click in highchart

javascript - 使用jquery根据用户点击的链接id动态创建文件路径

javascript - 使用 lodash 从两个对象数组中过滤对象

javascript - 如何将事件与选择框的选项 ID 相关联

javascript - HighCharts OHLC - 我可以使用 JSON 数据提供每个点的颜色信息吗?

javascript - 如何使用 highcharts 将 x 轴标签向左移动?