更改标记样式后图形会消失,然后更改线条颜色

时间:2016-04-07 11:13:42

标签: highcharts

我在图表中添加了一些功能,所有功能都有效 单独,但在我更改标记样式然后更改线条颜色后,图形消失。 代码如下所示:

function(chart){

  $('#colorchange').click(function() {
    chart.series[0].update({color:document.getElementById("selectcolor").value});
  });

  $('#stylechange').click(function() {
    chart.series[0].update({dashStyle: document.getElementById("selectStyle").value});
  });

  $('#pointchange').click(function() {
    var l = chart.series[0].points.length;

    var p = chart.series[0].points;
    for(var len = 0; len < l; len++) {

      p[len].update({
        marker: {
          symbol: document.getElementById("selectpoint").value,
        }
      }, false);
    }
  });

}

1 个答案:

答案 0 :(得分:2)

我不确定为什么会这样,但我找到了一个解决方法并且可能的原因: - )

我认为,当您在未指定p[len].update({...})x值的情况下致电y时,这些值会丢失。因此,当您致电chart.series[0].update时,积分本身将被删除。令我惊讶的是,只有在更新系列之后才会删除这些点,而不是在设置新标记之后删除。也许highcharts有某种缓存只能在系列更新时重建。

快速解决您的问题是在更新积分时手动将x和y属性设置为旧值:

p[len].update({
  x: p[len].x,
  y: p[len].y,
  marker: {
    symbol: document.getElementById("selectpoint").value
  }
}, false);

有关工作示例,请参阅http://jsfiddle.net/doc_snyder/2wwzgz0p/1/。如果删除设置了x和y值的行,则在设置颜色后线条会消失,就像您所经历的那样。