如何检查Highcharts y轴是否存在

时间:2017-06-28 10:22:17

标签: javascript highcharts

我有一张Highcharts图表,我正在动态添加y轴。

我找到this example并且它运作正常。

但是,如果你去看这个例子,多次点击“添加轴和系列”,你将得到多个轴和系列。

但在我的情况下,如果我添加了y轴,我想检查是否已存在具有相同Id的y轴,如果存在,则不要再次添加轴。

以下是该示例的副本(我没写过)

$(function () {
$('#container').highcharts('StockChart',{


    yAxis: {
        title: {
            text: 'Temperature'
        },
        lineWidth: 2,
        lineColor: '#F33'
    },

    series: [{
        name: 'Temperature',
        data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
        color: '#F33'   
    }]
});

// the button handlera
var chart = $('#container').highcharts();
$('#add').click(function() {
    // if not exist chart.axis['rainfall-axis'] :
    chart.addAxis({ // Secondary yAxis
        id: 'rainfall-axis',
        title: {
            text: 'Rainfall'
        },
        lineWidth: 2,
        lineColor: '#08F',
        opposite: true
    });
    chart.addSeries({
        name: 'Rainfall',
        type: 'column',
        color: '#08F',
        yAxis: 'rainfall-axis',
        data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    });
});
});

1 个答案:

答案 0 :(得分:3)

您可以使用内置的api(Chart.get)来检查具有给定ID的元素是否存在。

var id = 'rainfall-axis';

if ( !chart.get( id ) ) {
  chart.addAxis({ // Secondary yAxis
    id: id,
    title: {
      text: 'Rainfall'
    },
    lineWidth: 2,
    lineColor: '#08F',
    opposite: true
  });
}
else {
   alert( 'chart has an axis with id ' + id );
}

http://jsfiddle.net/f4f15cof/2/