У меня есть проект, в котором я использую модуль временной шкалы 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() работает, событие временной шкалы выбрано и сфокусировано. Однако событие «выбор» запускается НЕТ. Это подтверждено как работающее должным образом в документации (в разделе События> timeline.select), где написано: Not fired when the method timeline.setSelection() is executed.
Итак, мой вопрос: кто-нибудь знает, как использовать метод timeline.setSelection() и фактически запускать событие select? Мне кажется нелогичным вызывать метод timeline.setSelection() и фактически не запускать событие выбора.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Потратил на это несколько часов и потерпел неудачу. В итоге я просто взял код, который был в моем блоке timeline.on('select', function (properties) {, превратил его в функцию и вызвал ее после вызова timeline.setSelection().
По сути, я не исправил проблему, но решил ее обойти. Мы будем следить за этим на случай, если кто-то действительно сможет выяснить, как добавить событие select() к методу setSelection().