Клуб API Карт

Ничего не происходит при первом клике на кластер

exetrimall
24 марта, 23:59

Я использовал вот этот пример динамической подгрузки информации об объектах в кластере многоуважаемого dimik'а: http://jsfiddle.net/1dpotvy6/

Но при самом первом клике на кластер ничего не происходит. Если отключить clusterDisableClickZoom, то сначала кластер будет увеличиваться, а когда он не сможет разложиться и должен открыться баллун, то при первом клике снова ничего не происходит, только по второму открывается баллун. Пример: http://jsfiddle.net/1dpotvy6/10/

Тестировалось на разных юраузерах разными людьми, эффект один и тот же. не знаю ошибка это какая-то или нет, но не понятно как лучше её исправить. Пока навесил обработчик на клик по баллуну, сравнивая текущий зум с максимально доступным, но не знаю насколько это верно:

obj.clusters.events.add('click', function (e) {
    var objectId = e.get('objectId');
    if (obj.clusters.balloon.isOpen(objectId)) {
        obj.clusters.balloon.close();
    } else {
        if (map.zoomRange.getCurrent()[1] == map.getZoom()) {
            obj.clusters.balloon.open(objectId);
        }
    }
});

Видел еще упоминание util.requireCenterAndZoom, но выполнять такое через лишние http-запросы кажется крайне неразумным.

4 комментария
Подписаться на комментарии к посту
Это известная, но пока не исправленная ошибка.
dimik,
понял, спасибо. А способ решения проблемы нормальный или есть какой-то получше?
exetrimall,
Там насколько я помню какая-то проблема с подгрузкой нужного макета по требованию.
Можно сделать это явно через modules.require


ymaps.ready(function () {
ymaps.modules.require('theme.islands.cluster.balloon.layout.Content', init)
});


Обновил пример
dimik,
Спасибо!