我很想知道为什么按钮2在example
中无效在这个jsfiddle示例中,附加到按钮1的“更新”方法正常工作,但在我的原始代码中,“更新”也无效。它显示错误:“对象#没有方法'更新'”
$(function () {
var options= {
chart: {
renderTo: 'container',
height: 400
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
};
var chart = new Highcharts.Chart(options);
buttonhandle1();
buttonhandle2()
});
function buttonhandle1(){
$("#b1").click(function(){
var chart = $('#container').highcharts();
chart.yAxis[0].update({
min:0,
max: 5,
tickInterval : 1,
});
});
}
function buttonhandle2(){
var chart = $('#container').highcharts();
$("#b2").click(function(){
chart.yAxis[0].min= 0;
chart.yAxis[0].max= 5;
chart.yAxis[0].tickInterval = 1;
chart.redraw();
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<button id="b1"> button 1</button>
<button id="b2"> button 2</button>
答案 0 :(得分:5)
因为当您使用chart.redraw()
时,您还应将isDirty
标记设置为true
chart.yAxis[0].isDirty = true;
答案 1 :(得分:2)
更新对我来说也适用于按钮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();
});
}
小提琴代码。 http://jsfiddle.net/MrHunt/uKWQ9/5/
最好将图表作为参数传递给处理程序,而不是创建单独的变量。更新了小提琴:http://jsfiddle.net/MrHunt/uKWQ9/6/