我有一个项目,其中我使用vis.js时间轴模块作为图像轮播的类型,在那里我有开始时间和结束时间,在时间线上绘制事件,并自动循环显示它们并显示图像到另一个容器中的每个事件。
除了一部分之外,我已经可以使用此功能并使用类似于以下内容的功能来完成此操作:
var container = document.getElementById('visualization');
var data = [1,2,3,4,5];
var timeline = new vis.Timeline(container, data);
timeline.on('select', function (properties) {
// do some cool stuff
}
var i = 0;
(function timelapseEvents(i) {
setTimeout(function(){
timeline.setSelection(data[i], {focus: true, animation:true});
if (i < data.length - 1) {
timelapseEvents(i+1);
}
}, 2000);
})(i)
上面的timeline.setSelection()
部分起作用,时间轴事件被选中并关注。但是,“选择”事件是不触发的。在文档中(Events> timeline.select下),它显示为:Not fired when the method timeline.setSelection() is executed.
所以我的问题是,有人知道如何使用timeline.setSelection()
方法并实际触发select
事件吗?对我来说,调用timeline.setSelection()
方法而不实际触发select事件似乎并不直观。
答案 0 :(得分:0)
为此花了几个小时,结果很短。我最终只是拿起了timeline.on('select', function (properties) {
块中的代码,并将其变成一个函数,并在timeline.setSelection()
调用之后对其进行了调用。
基本上,我没有解决问题,但已解决。万一有人真的能够弄清楚如何将select()
事件添加到setSelection()
方法中,我们将密切注意这一点。