Клуб API Карт

Проблема с кликом внутри балуна

Сергей Миронов
6 августа 2010, 15:00

есть код

    YMaps.Events.observe(map, map.Events.Click, function (map, event) {
        event.preventMapEvent();
        polygon = new YMaps.Placemark(event.getGeoPoint());
        polygon.description = "Описание<textarea name='desc'></textarea><div onclick='map.removeOverlay(polygon)'>Удалить</div>";
        map.addOverlay(polygon);
        polygon.openBalloon();
    });

на карте, по клику ставится метка и сразу открывается... внутри textarea и div с обработкой на удаление оверлея

проблема в том, что по клику на "Удалить" у меня оверлей удаляеться, но обработчик map.Events.Click продолжает работать и после закрытия оверлея, на месте клика появляется новая метка и отрывается балун - все повторяется

как запретить map.Events.Click на все время время открытия балуна и опять разрешить если нажал на "Удалить" (или, например, нажал на закрытие балуна)

4 комментария
Подписаться на комментарии к посту
После щелчка на "Удалить" событие транслируется вверх и провоцирует клик по карте.

Вам нужно сделать так, чтобы событие не поднималось вверх к родительским элементам.

polygon.description = "ОписаниеУдалить";
Сергей Миронов
6 августа 2010, 15:42
Большое спасибо
...заработало
Извините, я подсказал вам некроссбраузерно решение.

Посмотрите следующий пост: http://clubs.ya.ru/mapsapi/replies.xml?item_no=10791
Там предложено решение подобной проблемы.
 
как запретить map.Events.Click на все время время открытия балуна и опять разрешить если нажал на "Удалить" (или, например, нажал на закрытие балуна)

Я решал по описанному алгоритму:
Отключил обработчик клика по карте, сделал дело с меткой, включил обработчик.