Яндекс карты, инициализация слайдера при переключении табов в баллоне кластера

При переключении табов в баллоне кластера нужно каждый раз инициализировать слик слайдер, так как при переключении он ломался. Для этого был добавлен обработчик

objectManager.clusters.balloon.events.add(['click'], onBalloonEvent);

в обработчике мы проверяем произошол клик по новому неактивному табу или кликнули по тому табу что открыт, если кликнули по неактивному табу то ищем в DOM элемент в котором нужно запустить инизиализацию с slick слайдера.

function onBalloonEvent (e) {
    if (activeObjectBalloon !== objectManager.clusters.balloon._collection.state._data.activeObject) {
        setTimeout(() => {
            $('.slider-map-photo').slick();
        })
    }                
}

Полный код, фрагмента с обработчиками открытия объекта и кластера объектов на карте ниже

function onObjectEvent (e) {
    var objectId = e.get('objectId');
    setTimeout(() => {
        if (e.get('type') == 'balloonopen') {
            $('.slider-map-photo').slick();
        } else if (e.get('type') == 'balloonclose') {
            $('.slider-map-photo').slick('unslick');
        }
    }, 100);                    
}

function onClusterEvent (e) {
    setTimeout(() => {
        if (e.get('type') == 'balloonopen') {
            $('.slider-map-photo').slick();
        } else if (e.get('type') == 'balloonclose') {
            $('.slider-map-photo').slick('unslick');
        }
    }, 100);
}

function onBalloonEvent (e) {
    if (activeObjectBalloon !== objectManager.clusters.balloon._collection.state._data.activeObject) {
        setTimeout(() => {
            $('.slider-map-photo').slick();
        })
    }                
}

objectManager.objects.events.add(['balloonopen', 'balloonclose'], onObjectEvent);
objectManager.clusters.events.add(['balloonopen', 'balloonclose', 'click'], onClusterEvent);
objectManager.clusters.balloon.events.add(['click'], onBalloonEvent);

Теги: Клик на clusterCaption в балуне кластера Яндекс-карты