Ваша визуализация может генерировать события, на получение которых может регистрироваться хост-страница. События могут быть вызваны действиями пользователя: например, пользователь нажимает на диаграмму, или могут быть внутренними: например, запуск события каждые 10 секунд. Вы можете зарегистрировать метод Javascript, который будет вызываться при каждом возникновении определенных событий, возможно, с данными, специфичными для этого события.
Каждая визуализация определяет свои собственные события, и документация для этой визуализации должна описывать, когда запускается каждое событие, что оно означает и какую информацию оно отправляет вашему обработчику событий (например, см. визуализацию организационной диаграммы ). На этой странице описывается, как создатель визуализации может запускать события. Чтобы узнать, как клиенты могут зарегистрироваться для получения событий, см. страницу «Обработка событий» .
Существует одно событие, которое должна запускать любая выбираемая визуализация: событие выбора. Однако поведение и значение этого события определяются каждой визуализацией.
Если визуализация не готова к взаимодействию сразу после того, как метод draw
возвращает управление пользователю, визуализация должна сработать: событие готовности. Точное поведение и значение этого события определены в разделе «Событие готовности» .
Важно отметить, что события API визуализации отделены от стандартных событий DOM.
Содержание
Запуск события
Чтобы вызвать событие из вашей визуализации, вызовите функцию google.visualization.events.trigger()
. Функция ожидает следующие параметры:
- Визуализация источника (обычно это значение
this
). - Имя события (строка).
- Детали события (Объект). Необязательная карта (имя/значение) конкретных сведений о событии.
В следующем примере показано, как визуализация генерирует событие выбора:
MyVisualization.prototype.onclick = function(rowIndex) { this.highlightRow(this.selectedRow, false); // Clear previous selection this.highlightRow(rowIndex, true); // Highlight new selection // Save the selected row index in case getSelection is called. this.selectedRow = rowIndex; // Fire a select event. google.visualization.events.trigger(this, 'select', {}); };
Страницы хостинга могут зарегистрироваться для получения ваших событий, вызвав google.visualization.events.addListener()
или google.visualization.events.addOneTimeListener()
. Обязательно тщательно документируйте любые события, которые вы запускаете.
Выбранное событие
Событие «выбрать» — это стандартное событие, вызываемое многими визуализациями в ответ на щелчок мыши пользователя. Если вы решите запускать событие в ответ на щелчки мыши, вам следует реализовать событие «выбрать» стандартным способом, описанным здесь:
- Вызовите событие с именем «выбрать», когда пользователь выбирает некоторые данные в визуализации. Событие не отправляет никаких аргументов функциям прослушивания.
- Предоставьте метод
getSelection()
, как описано в разделе связанного документа. Этот метод должен возвращать индексы элементов данных , которые выбрал пользователь. - Предоставьте метод
setSelection()
, как описано в справочном разделе. Также посетите страницу обработки событий , чтобы узнать, как обрабатывать события.
Готовое мероприятие
Любая визуализация должна запускать событие «готово», которое работает стандартным способом, чтобы сообщить разработчику, когда визуализация готова к обработке вызванных методов. (Однако не существует абсолютного требования , чтобы визуализация вела себя таким образом; проверьте документацию для вашей визуализации).
В общем, визуализации, отображающие событие «готовность», разрабатываются со следующими спецификациями:
- Событие готовности не передает никаких свойств обработчику (обработчик вашей функции не должен ожидать передачи ему каких-либо параметров).
- Визуализация должна активировать событие готовности после того, как визуализация будет готова к взаимодействию. Если отрисовка визуализации асинхронна, важно, чтобы событие вызывалось тогда, когда методы взаимодействия действительно могут быть вызваны, а не только тогда, когда метод
draw
завершается. - Добавление прослушивателя к этому событию должно быть выполнено до вызова метода
draw
, поскольку в противном случае событие может быть запущено до того, как прослушиватель будет настроен, и вы не сможете его перехватить. - Вызывая методы взаимодействия до того, как будет запущено событие готовности, вы рискуете, что эти методы не будут работать должным образом.
Соглашение заключается в том, что визуализации, которые не вызывают событие «готовность», готовы к взаимодействию сразу после завершения метода draw
и возврата управления пользователю.