可以使用setSelection模拟选择吗?

时间:2018-10-24 23:29:45

标签: javascript vis.js vis.js-timeline

我有一个项目,其中我使用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事件似乎并不直观。

1 个答案:

答案 0 :(得分:0)

为此花了几个小时,结果很短。我最终只是拿起了timeline.on('select', function (properties) {块中的代码,并将其变成一个函数,并在timeline.setSelection()调用之后对其进行了调用。

基本上,我没有解决问题,但已解决。万一有人真的能够弄清楚如何将select()事件添加到setSelection()方法中,我们将密切注意这一点。