Клуб API Карт

Event на Clusterer

GlooBus
24 декабря 2013, 22:05

День добрый!
Подскажите пожалуйста, кто может, сталкнулся с такой ситуацией при попытке перейти с 2.0 на 2.1...

Есть кусочек кода:

clusterer = new ymaps.Clusterer();
clusterer.add(myGeoObjects);
myMap.geoObjects.add(clusterer);
clusterer.events.add('click', function(){alert('Ooops!');});



Собственно вся суть в clusterer.events.add('click', function(){alert('Ooops!');})
Данное событие в версии 2.1 работает только пока кластер раскрывается. Если кластер не может дальше раскрыться или принудительно отключить его раскрытие, то данный events не работает. В версии 2.0 работает!
Суть в следующем - у меня много точек и содержимое балуна я получаю аджаксом в момент клика на точку. Аналогично у меня работает с кластером в версии 2.0, когда кластеру некуда раскрыться (к примеру ТРИ точки с одинаковыми координатами), у меня аджакс тянул данные по этим трем точкам, далее открывался балун кластера с меню в виде этих трех точек.

Как быть теперь?

P.S: Можете сами проверить в песочнице http://api.yandex.ru/maps/jsbox/clusterer_create достаточно добавить после:

clusterer.add(geoObjects);

следующий код:

clusterer.events.add('click', function(){alert('Ooops!');});

Все работает! Но стоит поменять версию API:

<script src="//api-maps.yandex.ru/2.1-dev/?lang=ru-RU&load=package.full" type="text/javascript"></script>

И event работает только на метке

2 комментария
Подписаться на комментарии к посту

Правильный вариант такой.

1. Запрещаете кластерам показывать балун по клику.

clusterer.options.set('openBalloonOnClick', false);

2. Слушаете событие клик на кластере.

3. По клику подгружаете данные и открываете балун на кластере

clusterer.events.add('click', function () {

....

clusterer.balloon.open(cluster);

})

 

В будущих релизах вернем событие клик при открытии балуна.

Большое спасибо, все сделал! (+1)