Javascript 谷歌仪表板-chartRangeFilter,如何知道滑块控件何时移动,然后停止
我可以向ChartRangeFilter controlWrapper添加事件处理程序,以了解滑块何时移动:Javascript 谷歌仪表板-chartRangeFilter,如何知道滑块控件何时移动,然后停止,javascript,charts,google-visualization,Javascript,Charts,Google Visualization,我可以向ChartRangeFilter controlWrapper添加事件处理程序,以了解滑块何时移动: google.visualization.events.addListener(control, 'statechange', selectHandler); 我有一个处理程序: function selectHandler(e){ var state = control.getState(); console.log(state); if (state
google.visualization.events.addListener(control, 'statechange', selectHandler);
我有一个处理程序:
function selectHandler(e){
var state = control.getState();
console.log(state);
if (state != 'inProgress') {
currentLeftSliderPos = control.getState().range.start;
currentRightSliderPos = control.getState().range.end;
console.log(currentLeftSliderPos);
console.log(currentRightSliderPos);
}
}
它不起作用,我知道原因
control.getstate()
返回一个对象,而这并不是我真正想要的。我知道有一种方法可以检查滑块是否“正在进行”,但我无法从我读到的关于如何进行的内容中找出答案。还是检查“就绪”状态?在滑块停止之前,我不想重新加载图形数据,因为我有一个大数据集。对发送到事件处理程序的参数使用inProgress
属性
它具有以下属性
{
"inProgress": false,
"startChanged": true,
"endChanged": false
}
请参阅以下工作片段
google.charts.load('current'{
回调:drawDashboard,
包:['corechart','controls']
});
函数drawDashboard(){
var data=new google.visualization.DataTable();
data.addColumn('date','x');
data.addColumn('number','y0');
data.addRows([
[新日期(2017年6月12日),9],
[新日期(2017年6月13日)8],
[新日期(2017年6月14日)10],
[新日期(2017年6月15日)8],
[新日期(2017年6月16日)22],
[新日期(2017年6月17日),25],
[新日期(2017年6月18日)24],
[新日期(2017年6月19日)14],
[新日期(2017年6月20日)12],
[新日期(2017年6月21日)8],
[新日期(2017年6月22日),9],
[新日期(2017年6月23日)4]
]);
var dashboard=new google.visualization.dashboard(
document.getElementById('仪表板')
);
var chart=new google.visualization.ChartWrapper({
图表类型:“区域图表”,
集装箱船:“海图”
});
var control=new google.visualization.ControlWrapper({
controlType:“ChartRangeFilter”,
集装箱:“控制”,
选项:{
filterColumnIndex:0
}
});
google.visualization.events.addListener(控件,'statechange',函数(eventArgs){
document.getElementById('info').innerHTML='controlismoving='+eventArgs.inProgress;
});
仪表板绑定(控件、图表);
仪表盘.绘图(数据);
}