Клуб API Карт

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

Arman
2 марта 2015, 14:02

Добрый день.

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

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

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


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

Спасибо.

2 комментария
Всеволод Шмыров
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'и генерируется заново при смене уровня масштаба карты.

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