Клуб API Карт

[РЕШЕНО] Как повесить событие "click" на объект из списка внутри кластера?

azhirov1991
29 сентября 2016, 14:53

Здравствуйте. Подскажите пожалуйста, каким образом я могу повесить событие "click" на каждый элемент в списке внутри кластера?

Я вешал событие на "balloonContentHeader" - создавал элемент с классом и при открытии кластера вешал событие на каждый элемент из списка. Проблема в том, что я использую "id" для каждого элемента из списка и таким образом - этот id дублируется в правой части списка (header). Пришлось засунуть этот id внутрь каждого объекта и вытаскивать его при видимости в кластере.

e.get('target').state.get('activeObject').properties.get('identifier')

Поэтому мне нужен другой вариант объявления события click для элементов из списка.

8 комментариев
Подписаться на комментарии к посту
Можно слушать изменение activeObject на поле state
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark-docpage/#state
dimik,
Я и это использовал, например:
e.get('target').state.events.add('change', function(){ console.log("HELLO MFCK!"); });
Но теперь событие выполняется и при движении мышки над кластером.
azhirov1991,
Нужно проверять что activeObject изменился. Проще всего использовать для этого Monitor
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Monitor-docpage/
dimik,
всё получилось) благодарю!!! Вот видео снял, как работает)
https://www.youtube.com/watch?v=_tMhBacZhvU&feature=youtu.be
dimik,
суть в чём... я хочу повесить всего лишь обработчик с вызовом функции, которая будет вызываться только лишь при нажатии на элементы из списка в кластере.
azhirov1991,
Это и есть смена активного объекта
azhirov1991,
а можно пример?
Dmitry Farinniy,
вот, пожалуйста
https://drive.google.com/open?id=0ByOBUYSTuTP_N3VIa0Rlb3JHN28