Клуб API Карт

Удалить метку при закрытии балуна

Пост в архиве.

Здравствуйте, подскажите пожалуйста, при нажатии на крестик "закрыть балун" как удалить метку?

11 комментариев
Всеволод Шмыров
28 января 2016, 00:20
Да. Вам нужно слушать "userclose" (клик по крестику) или "close" (просто закрытие балуна. К примеру, программно).
http://api.yandex.ru/maps/doc/jsapi/beta/ref/reference/Balloon.xml#event-userclose

Это 2.1) 

Вот так норм)

placemark.events.add('balloonclose', function(e) {

        map.geoObjects.remove(placemark);

        placemark = null;

});

Владислав Турман
28 января 2016, 00:20

В песочнице код отработал, так что, думаю, сойдет)

оказывается balloonclose не подходить, потому что срабатывает на все закрытия балуна, а мне нужно именно при на жатии на крестик, видимо userclose, но разве это не v2.1?

А кк пользоваться?)

Уже по разному пробовал:

map.events.add('userclose', function() {

});

placemark.events.add('userclose', function(e) {

});

Всеволод Шмыров
28 января 2016, 00:20
placemark.balloon.events.add('userclose', function(e) { ...

Ты проверял? у меня это НЕ работает в 2.0

В 2.1 работает

Всеволод Шмыров
28 января 2016, 00:20
сегодня, 10:12
Да. Я ошибся. В 2.0 код будет выглядеть немного сложнее:

    pl.events.add('balloonopen', function (e) {
        var layout = e.get('balloon').getOverlay().getLayout();
       
        layout.events.once('userclose', function () {
            alert('1');
        });
    });
http://jsfiddle.net/c9e2S/2/
Событие userclose у макета

Благодарю)

Всеволод Шмыров
28 января 2016, 00:20
Написал чуть ниже в ответ на сообщение темного рыцаря.