【问题标题】:Possible to simulate select using setSelection?可以使用 setSelection 模拟选择吗?
【发布时间】:2019-03-29 11:25:41
【问题描述】:

我有一个项目,我使用 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()method 并没有真正触发 select 事件对我来说似乎不直观。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2014-07-09
      • 1970-01-01
      相关资源
      最近更新 更多