Клуб API Карт

Действие при клике на Balloon или точку

snovid
29 января 2010, 18:05

Люди, прощу помощи!

Вывожу на карте с помощью Геокодера список нужных городов: http://www.intertech-corp.ru/map.asp

При наведении мыши на флажок появляется Balloon. Но мне еще нужно обработать клик по точке или балуну!
Вот две функции рядом:

YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
                    if (this.length()) {
                       var geoResult = this.get(0);
                       YMaps.Events.observe(geoResult, geoResult.Events.MouseOver, function () {
                              map.openBalloon(geoResult.getGeoPoint(), my_Enterprise,{hasCloseButton:false});         
                            }); 
                         YMaps.Events.observe(geoResult, geoResult.Events.Click, function () {
                               alert('Тестирование');
                            }); 
                       bounds.add(geoResult.getGeoPoint());
                       gCollection.add(geoResult);
                       map.setBounds(bounds);

                   }
                });       

но одна срабатывает (geoResult.Events.MouseOver), а другая никак не хочет. Где я не прав?

2 комментария
Подписаться на комментарии к посту
У вас маленький значок для метки, поэтому "нога" балуна закрывает его и не пропускает клики на метку.

Внешне выглядит, что можно по метке щелкнуть, однако, "нога" балуна рисуется с помощью нескольких элементов , которые имеют прямоугольную форму. Таким образом получается, что контейнер, в котором нарисован "хвостик", полностью перекрывает значок метки.

Решений два:
1. Открывать балун не на карте, а у самого объекта. А у объекта выставить параметра hideIcon = false.
var placemark = new YMaps.Placemark(map.getCenter(), {
    style : {
        iconStyle : {
            href : "http://www.intertech-corp.ru/images/metka2.png",
            size : new YMaps.Point(16, 16),
            offset : new YMaps.Point(-2, -17)
        }
    },
    hideIcon : false
});
map.addOverlay(placemark);
placemark.openBalloon();

YMaps.Events.observe(placemark, placemark.Events.Click, function () {
    alert('click');
});

2. Не открывать балун при наведении, а показывать, например, всплывающую подсказку.

3. Увеличить значок метки.
Житенёв Илья
28 января 2012, 02:35

Подскажите, а как сделать, чтобы при клике на метку выводилось содержимое балуна (description)?