Jquery Highcharts:尝试更新系列

Jquery Highcharts:尝试更新系列,jquery,highcharts,Jquery,Highcharts,我正试图通过单击按钮来更新Highchart系列。由于未知原因,无法更新该系列。有人能帮我吗 这里有一个JSFIDLE链接: 请参见下面的我的代码: chart: new Highcharts.Chart({ chart: { renderTo:'container', type: 'bar', backgroundColor: 'transparent', height:200 }, tooltip: {

我正试图通过单击按钮来更新Highchart系列。由于未知原因,无法更新该系列。有人能帮我吗

这里有一个JSFIDLE链接:

请参见下面的我的代码:

 chart: new Highcharts.Chart({
    chart: {
        renderTo:'container',
        type: 'bar',
        backgroundColor: 'transparent',
        height:200
    },
    tooltip: {
        positioner: function () {
            return {x:0,y:0}
        },
        formatter: function() {
            return '<b>' + this.series.name + '</b>: <b>' + this.y + ' uur</b>';},
        shadow: false,
        borderWidth: 0,
        backgroundColor: 'rgba(0,0,0,0.1)'
    },
    credits: {
        enabled: false
    },
    title: {
        text: 'Shift Overview'
    },
    xAxis: {
        lineWidth: 0,
        minorGridLineWidth: 0,
        lineColor: 'transparent',
        minorTickLength: 0,
        tickLength: 0,
        labels: {
            enabled: false
        },
        height: 50
    },
    yAxis: {
        categories: ['7:00', '8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00'],
        tickmarkPlacement: 'on',
        height: 50
    },
    legend: {
        reversed: false
    },
    plotOptions: {
        series: {
            stacking: 'normal'
        }
    },
    series: [{"name": "Production", "data": [3.5], "color":"green"}, {"name": "Changeover", "data": [1.5], "color":"lightblue"}, {"name": "Technical Failure", "data": [5], "color":"red"}, {"name": "Production", "data": [2], "color":"green"}]
});
.update()方法仅更新现有系列的选项。要更新,我认为您需要删除现有系列,然后一次添加一个新系列。另一种方法是删除图表并用新数据重新创建它。我展示了第一个更新,如下所示:

$('#button').click(function () {
        var chart = $('#container').highcharts();
        var new_serie = [{
            "name": "Production",
                "data": [3.5],
                "color": "green"
        }, {
            "name": "Changeover",
                "data": [3.5],
                "color": "lightblue"
        }, {
            "name": "Technical Failure",
                "data": [5],
                "color": "red"
        }];
        //alert(new_serie); // returns objects
        for (var i = chart.series.length-1; i>=0; i--) {
            chart.series[i].remove();
        }
        for (var y = new_serie.length-1; y >= 0; y--) {
            chart.addSeries(new_serie[y]);
        }
    });

检查这个小提琴:

你能发布你的json回复并创建一个JSFIDLE吗?如果可能的话,你的json是不正确的,你不能像字符串一样放括号。Alert返回的字符串很好,但它不是对象。我试图通过单击按钮更新序列,但它不起作用。有人知道如何更新这个系列吗@dreamweiver:正如你所问,我已经创建了一个JSFIDLE:[链接]@SebastianBochan:谢谢你的回复。很有用,谢谢你,伙计!这正是我需要的。你解释得很好。。。现在我更明白了。再次感谢你!
$('#button').click(function () {
        var chart = $('#container').highcharts();
        var new_serie = [{
            "name": "Production",
                "data": [3.5],
                "color": "green"
        }, {
            "name": "Changeover",
                "data": [3.5],
                "color": "lightblue"
        }, {
            "name": "Technical Failure",
                "data": [5],
                "color": "red"
        }];
        //alert(new_serie); // returns objects
        for (var i = chart.series.length-1; i>=0; i--) {
            chart.series[i].remove();
        }
        for (var y = new_serie.length-1; y >= 0; y--) {
            chart.addSeries(new_serie[y]);
        }
    });