我正在使用highcharts,我想点击一个点,并有一个模型弹出,并能够改变一个按钮,并改变颜色和点的符号。我可以改变一个点,但是当我点击下一个点时。我得到Uncaught RangeError:超过最大调用堆栈大小。任何帮助将是伟大的!
var update;
// point click event function
function showModal(p) {
update = p;
var d = moment(p.point.x).format('M/D/YYYY H:mm');
$('#point-date').html(d);
$('#point-value').html(p.point.y);
$('#point-flag').val(p.point.flag);
$('#pointModal').modal('show');
}
// Clicking save on modal
function saveFlag() {
var newData = update.point.series.data;
var dataPoint = newData.filter(function (r) {
return r.SiteID == update.point.SiteID && r.Date_Time == update.point.Date_Time
});
if (dataPoint != null && dataPoint.length > 0) {
var size = 2;
if (data.length < 50)
size = 4;
var value = $('#point-flag').val();
dataPoint[0].marker.radius = size;
dataPoint[0].marker.symbol = getSymbol(value);
dataPoint[0].colorIndex = getColorIndex(value);
dataPoint[0].flag = value;
for (var index in timeseries.series) {
if (timeseries.series[index].name == update.point.series.name) {
timeseries.series[index].setData(newData);
}
}
}
$('#pointModal').modal('hide');
}
2条答案
按热度按时间p5fdfcr11#
我的理解是,在这个例子中,
timeseries.series
引用了这个API,并且是一个数组。要遍历数组,我不想使用for...in
,而是for...of
,它返回每个元素:请参阅:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
dhxwm5r42#
我知道如何更新一个点,这对我来说很有效。