0

我有一个项目,我使用 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()部分工作,时间线事件被选中并关注。但是,不会触发“选择”事件。这在文档(在事件>时间线.select下)中被验证为按预期工作,它说:Not fired when the method timeline.setSelection() is executed.

所以我的问题是,有谁知道如何使用该timeline.setSelection()方法并实际触发select事件?timeline.setSelection()调用该方法而不实际触发 select 事件对我来说似乎不直观。

4

1 回答 1

0

花了几个小时在这上面,结果很短。我最终只是把我的代码timeline.on('select', function (properties) {块中的代码变成了一个函数并在调用后调用它timeline.setSelection()

基本上,我没有解决这个问题,而是解决了这个问题。将密切关注这一点,以防有人真正能够弄清楚如何将select()事件添加到setSelection()方法中。

于 2018-10-25T17:04:47.637 回答