我试图用一个按钮来动态更改guides参数的value和toValue字段。这是我的代码,我正在尝试:
function changeTresh(){
var treshhold1 = parseFloat(document.getElementById("treshhold1").value);
var treshhold2 = parseFloat(document.getElementById("treshhold2").value);
console.log(treshhold1);
console.log(treshhold2);
if(treshhold1 & treshhold2 != 0){
chartConfig.guides["0"].value = treshhold1;
chartConfig.guides["0"].toValue = treshhold2;
chartConfig.guides["1"].toValue= treshhold1;
chartConfig.guides["2"].value = treshhold2;
}
}
这是按钮的代码:
<label for="treshhold1">Minimum value:</label>
<input type="number" name="treshhold1" id="treshhold1"><br>
<label for="treshhold2">Maximum value:</label>
<input type="number" name="treshhold2" id="treshhold2">
<input type="button" value="Change treshholds" id="btChangeTresh" onclick="changeTresh()">
我的函数没有给出任何错误,但仍然无法正常工作。我已经尝试过console.log并且它完美地执行了功能,直到chartConfig.guides [“ 0”]。value = treshhold1;线。在那里,它只是停止了,但没有给出错误。
有人知道怎么回事吗?
答案 0 :(得分:0)
guides
是一个数组,而不是一个对象。在数组上引用索引不正确:
chartConfig.guides[0].value = treshhold1;
chartConfig.guides[0].toValue = treshhold2;
chartConfig.guides[1].toValue= treshhold1;
chartConfig.guides[2].value = treshhold2;
还要注意,在更新图表中的任何属性时,您必须调用图表对象上的validateData
进行更改,例如chart.validateData()
。我不确定chartConfig是否对应于实际的图表对象,但是如果不是,则需要访问从AmCharts.makeChart
返回的图表对象变量,并从该变量调用validateData
。您还可以通过AmCharts
数组(即charts
等)通过全局AmCharts.charts[0].validateData()
对象访问所有图表对象。