Клуб API Карт

Удалить метку по событию "dblclick".

nikolay.krysanov
28 ноября 2014, 16:02

Здравствуйте, подскажите, пожалуйста, решение для такой задачи. Пользователь кликает по карте, добавляется метка, далее, если пользователь два раза щелкнит по

метки, она должна исчезнуть. Проблемы с добавлением нет, возникла проблема с удалением, в консоле браузера возникает ошибка:

Error: TypeError: n.getMap(...) is null
Source File: http://api-maps.yandex.ru/2.1.17/release/combine.xml?modules=21,$370hqX2L,8,.qNqH2Pqmqhqa.x39qfqVqS,Z24232Eq5!.qz,JqjqRqG,)225o4q,_4*6E5l4(5m5b4QqF,W2R2Y6q92qUq7,V(u.f.k.l2v*Q*j*,2a*J*z*q2bqg!(qv9(9q9QqT3s3vqK-R9,,z,9q)25)2)Wq4,s9_96,30k4LqPq1q2- ....

Line: 234

 

Ниже приведен код:

 

 

var markClusterer = new ymaps.Clusterer({clusterDisableClickZoom: true});

....
var mark = makeMark ('text', coordinates());
mark.events.add("dblclick", function (event) {
    markClusterer.remove(mark);
    console.log("double click");
});

...

markClusterer.add(mark);

 

код makeMark:


function makeMark(text, coord) {
      return new ymaps.GeoObject({
               geometry: {
                       type: "Point",
                        coordinates: coord
                },
                properties: {
                        clusterCaption: text,
                        balloonContentBody: text
                }
            }, {
                    preset: "islands#blueCircleDotIcon"
            })
 }

 

 

7 комментариев

Посмотрите пример - вроде у меня без ошибок отрабатывает http://jsfiddle.net/az18vss6/

Ошибка видимо из-за того что по клику пытается открыться балун на метке, а закрывается уже у несуществующей метки

Если по клику открывается балун, даблклик уже не проходит, это довольно сложно физически осуществить

У меня в песочнице осуществилось, даже еще dblClickZoom на карте сработал. Полный комплект =)

Там надо вызвать preventDefault у события

Ну это понятно (и на каждую метку тоже его вешать не надо, а как у тебя, использовать делегирование),

Я проверял на один в один коде, и ошибка не воспроизвелась.

спасибо, очень помогло