Проблема с yandex-maps-api

116
02 декабря 2020, 04:40

Когда кликаю на меню, то открывается балун, но не пропадает иконка под ним.

Когда кликаю по placemark на карте, то она открывает балун и исчезает.

Нужно, чтобы при клике на .map__list-item, открывался балун с координатами этого элемента (data-x, data-y), и карта переносилась к этому балуну, не могу понять как сделать.

window.addEventListener('load', function() {
    ymaps.ready(function() {
        var items = $(".map__list-item"),
                ymap = $(".map__target").get(0); // ссылка на контейнер карты

        var map = new ymaps.Map(ymap, {
            center: [47.267, 39.682],
            zoom: 13
        });
        ymaps.behavior.storage.remove("scrollZoom");
        map.controls.remove('geolocationControl');
        map.controls.remove('searchControl');
        map.controls.remove('trafficControl');
        map.controls.remove('typeSelector');
        map.controls.remove('fullscreenControl');
        map.controls.remove('rulerControl');
        map.behaviors.disable(['scrollZoom']);
        items.each(function () {
            let x = +$(this).attr('data-x'),
                    y = +$(this).attr('data-y'),
                    address = $(this).text().split('+')[0],
                    title = $(this).attr('data-title');
                var placemark = new ymaps.Placemark([x, y],
                    {
                        balloonContentHeader: (
                            // /wp-content/themes/ggs/assets/images/develop/logo.svg
                            '<img src=" assets/images/develop/logo.svg" style="width: 100px;display: block;margin: 0 auto 8px;">' +
                            '<p style="text-align: center">' + title + '</p>'
                        ),
                        balloonContent: address.substr(address.indexOf('.') + 1),
                        hideIconOnBalloonOpen: true
                    },
                    {
                        iconLayout: 'default#image',
                        iconImageHref: 'assets/images/develop/map.png',
                        iconImageSize: [115, 84],
                        iconImageOffset: [-115 / 2, -32]
                    }
                );
                map.geoObjects.add(placemark);  
                // placemark.balloon.open();    
                map.panTo([x, y]).then(function () {
                        map.setZoom(13);
                });         
        });
        $('.map__list').on('click', '.map__list-item', function(){
            let x = +$(this).attr('data-x'),
                    y = +$(this).attr('data-y'),
                    address = $(this).text().split('+')[0],
                    title = $(this).attr('data-title');
            var placemark = new ymaps.Placemark([x, y],
                {
                    balloonContentHeader: (
                        // /wp-content/themes/ggs/assets/images/develop/logo.svg
                        '<img src=" assets/images/develop/logo.svg" style="width: 100px;display: block;margin: 0 auto 8px;">' +
                        '<p style="text-align: center">' + title + '</p>'
                    ),
                    balloonContent: address.substr(address.indexOf('.') + 1),
                    hideIconOnBalloonOpen: true
                },
                {
                    iconLayout: 'default#image',
                    iconImageHref: 'assets/images/develop/map.png',
                    iconImageSize: [115, 84],
                    iconImageOffset: [-115 / 2, -32]
                }
            );
            items.removeClass('map__list-item--active');
            $(this).addClass('map__list-item--active');
                map.panTo([x, y]).then(function () {
                map.setZoom(13);
                });
            map.geoObjects.add(placemark);
            placemark.balloon.open([x,y]);
        });         
        $('.map__select')
        .trigger('click')
        .find('.map__select-list-item:first')
        .trigger('click');
    });
})
READ ALSO
Зачем в коде if? [закрыт]

Зачем в коде if? [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

112
Почему не выводится textContent?

Почему не выводится textContent?

К примеру имеем обычные параграфы

124
Динамическое подключение js скрипта

Динамическое подключение js скрипта

Пишу сайт интернет-магазинВ качестве инструментов голые php,js,css,mysql

105
Как имитировать событие &#39;change keyup&#39;

Как имитировать событие 'change keyup'

Имею код, которые срабатывает на событие on('change keyup'Нужно имитировать это событие, чтобы запустить этот код

119