Клуб API Карт

Как отловить событие открытие tab'ов у балуна кластера?

Пост в архиве.

Добрый день.

Очень много placemark'еров на карте и многие рядом друг с другом, использую Clusterer для группировки, вроде все работает.

На placemark'еры, через "placemark.events.add('balloonopen', myFun);", повесили событие — работает.

Но вот при открытии через Clusterer функция не запускается. Пробовал повесить событие на clusterer.balloon.events.add('open', myFun); но запускается только когда открывается Балун, а когда меняешь табы в балуне функция не работает.


Вопрос: Как отловить событие открытия таба балуна кластера? Мне нужно "balloonContent" передать функции, с placemark работает, с табами нет.

Спасибо.

7 комментариев
Всеволод Шмыров
27 января 2016, 23:03
Добрый день. При переключении геообъектов в балуне кластера не происходит переоткрытие балуна, так как это неправильно в плане производительности. Вы можете узнать текущий активный геообъект при помощи поля "activeObject" в состоянии геообъекта.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark-docpage/#state

Отслеживать изменение значений в менеджерах данных можно при помощи монитора.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Monitor-docpage/

То есть вам нужно по событию открытия балуна создавать монитор, который прослушивает состояние ClusterPlacemark и соответственно удалять монитор по событию закрытия балуна. Монитор нужно пересоздавать, так как ClusterPlacemark'и генерируется заново при смене уровня масштаба карты.

спасибо большое, буду пробовать.

Arman,
Привет) у тебя получилось это сделать? У меня проблемы с подключением слежения монитора. Можешь подсказать?
Danil2777,
привет. Тогда по срокам не успели и оставили простой вертикальный список, т.е. без табов =( 
Arman,
а как выглядит простой вертикальный список?) Я думал только табы могут быть.
Всеволод Шмыров,
Можешь помочь с таким же вопросом? Уже несколько дней бьюсь. Напиши мне на почту danil2777@yandex.ru или в телегу @sevenel
Danil2777,
напишите на Stack Overflow с примером кода, который вы уже написали.