我有一個HighCharts線圖,允許多點選擇。在每次選擇/取消選擇後,我想根據當前選定的所有點執行操作。HighCharts多點選擇 - 在點選擇後立即訪問/更新getSelectedPoints數組
我觸發了plotoptions.line.point.events.select(或.click)事件,它返回所選的最新點。但是,chart.getSelectedPoints()返回的數組顯然不會在.select或.click事件完成之後纔會更新。所以我不能在裏面使用chart.getSelectedPoints()這個事件。
下面是從這個例子表明該問題的exerpt - http://jsfiddle.net/joelion/QJ75h/
plotOptions: {
series: {
allowPointSelect: true,
point: {
events: {
select: function() {
var chart = $('#container').highcharts();
var selectedPointsStr = "";
// when is the chart object updated? after this function finshes?
var selectedPoints = chart.getSelectedPoints();
$.each(selectedPoints, function(i, value) {
selectedPointsStr += "<br>"+value.category;
});
$report.html(selectedPointsStr);
}
}
}
}
有沒有辦法迫使圖表getSelectedPoints()陣列後點選擇?或者可能是陣列更新後觸發的另一個事件?
這幾乎就是我在發佈後不久就實施的內容。 但是,我結束了與另一種解決方案。我這樣做的原因是,當用戶點擊一個點時,第二個圖表的數據會動態加載並繪製在第二個圖表上。但是我發現,在進行多點選擇時,第二個圖形在每次點擊之後都會重新繪製,速度很慢且讓人分心。所以我剛剛添加了一個按鈕來強制繪製第二個圖表,在第一個圖表中選擇點之後。按鈕功能可以使用普通的getSelectedPoints()函數。 – joelion
是的,的確如此。那麼好工作! –