Клуб API Карт

YMaps.Balloon событие CloseButtonClick

e.bea
11 февраля 2010, 12:13

Уважаемые подскажите, как поймать это событие и повешать callback?

вариации не помогают

 YMaps.Events.observe(that.map, that.map.Events.BalloonClose|CloseButtonClick, function (element) {

 alert('CloseButtonClick');
});

 

7 комментариев
Подписаться на комментарии к посту
Событие CloseButtonClick необходимо слушать у балуна, а не у карты. Указатель на открытый балун можно получить с помощью метода карты getBalloon().
YMaps.Events.observe(that.map.getBalloon(), that.map.getBalloon().Events.CloseButtonClick, function () { alert('CloseButtonClick'); }); that.map.getBalloon(), возвращает undfined :-)
Александр если не сложно можно чуток поподробнее?
Можно навесить обработчик на это события, например, так:
// Открываем балун
map.openBalloon(map.getCenter());

// Создание обработчика
var balloon = map.getBalloon();
YMaps.Events.observe(balloon, balloon.Events.CloseButtonClick, function () {
    alert("CloseButtonClick");
});
т.е. получается надо вешать обработчик при каждом открытии балуна? как у google карт не получится сделать? отработав один раз GEvent.addListener( that.map.getInfoWindow(), 'closeclick', callback);
Балун у карты один, поэтому достаточно навесить обработчик один раз.

А расскажите, пожалуйста, задачу, которую вы решаете. Быть может вам лучше слушать событие BalloonClose?

есть необходимость при закрытие балуна (когда пользователь нажал на крестик) удалять из hash (например #query/balloon/objectId/113)


Спасибо Александр, за помощь