Highcharts highchart图表重绘方法未刷新图表

Highcharts highchart图表重绘方法未刷新图表,highcharts,Highcharts,我很想知道为什么按钮2在这种情况下不起作用 在这个JSFIDLE示例中,连接到按钮1的“update”方法起作用,但在我的原始代码中,“update”也不起作用。它显示错误:“对象#没有方法‘更新’” $(函数(){ 变量选项={ 图表:{ renderTo:'容器', 身高:400 }, xAxis:{ 类别:[一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月] }, 系列:[{ 数据:[29.9,71.5,106.4,129.2,144.0,176.0,135.6

我很想知道为什么按钮2在这种情况下不起作用

在这个JSFIDLE示例中,连接到按钮1的“update”方法起作用,但在我的原始代码中,“update”也不起作用。它显示错误:“对象#没有方法‘更新’”

$(函数(){
变量选项={
图表:{
renderTo:'容器',
身高:400
},
xAxis:{
类别:[一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月]
},
系列:[{
数据:[29.9,71.5,106.4,129.2,144.0,176.0,135.6148.5,216.4194.1,95.6,54.4]
}]
};
var图表=新的Highcharts.图表(选项);
按钮句柄1();
buttonhandle2()
});
函数按钮Handle1(){
$(“#b1”)。单击(函数(){
var chart=$(“#容器”).highcharts();
chart.yAxis[0]。更新({
分:0,,
最高:5,
时间间隔:1,
});
});
}
函数按钮Handle2(){
var chart=$(“#容器”).highcharts();
$(“#b2”)。单击(函数(){
chart.yAxis[0].min=0;
chart.yAxis[0].max=5;
chart.yAxis[0].tickInterval=1;
chart.redraw();
});
}

按钮1

按钮2
因为当您使用
chart.redraw()
时,您还应该将
isDirty
标志设置为true


更新按钮2对我也有效,图表属性可以通过闭包访问

function buttonhandle2(){
    var chart = $('#container').highcharts();
    $("#b2").click(function(){
        chart.yAxis[0].update({
            min:0,
            max: 5,
            tickInterval : 1
        });
    });
}
另一个选项是在轴上设置isDirty

function buttonhandle3(){
    var chart = $('#container').highcharts();
    $("#b3").click(function(){
        chart.yAxis[0].min= 0;
        chart.yAxis[0].max= 5;
        chart.yAxis[0].tickInterval = 1;
        chart.yAxis[0].isDirty = true;
        chart.redraw();
    });
}
用小提琴编码。


最好将图表作为参数传递给处理程序,而不是创建单独的变量。这里更新了fiddle:

非常感谢:)您最好:)isDirty似乎不再出现在api中
function buttonhandle3(){
    var chart = $('#container').highcharts();
    $("#b3").click(function(){
        chart.yAxis[0].min= 0;
        chart.yAxis[0].max= 5;
        chart.yAxis[0].tickInterval = 1;
        chart.yAxis[0].isDirty = true;
        chart.redraw();
    });
}