@kzk888

Yandex map | как удалить метку при клике на элемент вне карты?

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

function savePlacemark( coords, coordsAddress, index ) {

        var coordsArray = coords.split(',');

        // Создание метки
        var savePlacemark = new ymaps.Placemark(
            // Координаты метки
            coordsArray,
            {
                //iconContent: '1',
                balloonContent: coordsAddress
            }
        );

        // Добавление метки на карту
        myMap.geoObjects.add( savePlacemark, index );

    }


При добавлении метки, я в span кнопки удаления метки добавляю параметр data-index и там указываю index ( который сам задаю через i++ ).
Думал решением будет заданный index на каждую метку, но, это не так.
Если удалить первую метку определив на нее ссылку по index, то, остальные метки перестают удалятся. А если удалять с конца, то, все ок.

Вот скрипт удаления

$( document ).on( $clickAction, $deleteMarkedplaceButtonClass, function (e) {
        e.preventDefault();

        var elem = $( this ),
            index = elem.attr( $dataIndexAttr ),
            wrapperBlock = elem.parent().parent(),
            selectedPlacemark = myMap.geoObjects.get( index ); // тут я определяю ссылку на метку

        myMap.geoObjects.remove( selectedPlacemark ); // удаляю по ссылке т.е. child, как указано в документации
        wrapperBlock.remove();

        if( $( $addressSearchInputClass ).length == 0 ){
            addNewSeachField();
        }

    });


Думал может быть при добавлении адреса и полей, сохранять ссылки в jquery массив.
Но, либо я что то делаю не так, или не понятно. При попытке вытащить из этого массива элемент, он мне возвращает [object Object]
Помогите пжл, я в тупике.
  • Вопрос задан
  • 1900 просмотров
Решения вопроса 1
@kzk888 Автор вопроса
Сам же нашел ответ своему вопросу, все дело было в index.
Т.е. при удалении какой либо метки, index заного перестраивается, т.е. его каунтер сбрасывается и если было 1,2,3,4,5 и при удалении 4 точки, как я думал должно быть 1,2,3,5 оказалось ошибочными. После удаления index сбрасывался и становился 1,2,3,4.
Т.е. просто тупо дописал в событие клика на удаление, брать общий список элементов кнопки удаления и по i++ перераспределять index.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы