Можно ли имитировать выбор с помощью setSelection?

У меня есть проект, в котором я использую модуль временной шкалы 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() и фактически не запускать событие выбора.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
470
1

Ответы 1

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

По сути, я не исправил проблему, но решил ее обойти. Мы будем следить за этим на случай, если кто-то действительно сможет выяснить, как добавить событие select() к методу setSelection().

Другие вопросы по теме