Пытаюсь открывать контейнер с картой после прогрузки всей страницы, по инструкции отсюда:
http://api.yandex.ru/maps
карта отображается, но теряется содержание баллуна:
если убрать display:none или свернуть и заново открыть балун, то все становится нормальным.
есть очень сильные подозрения что как то неправильно происходит перерисовка карты map.redraw()
для дива с картой прямо в коде прописаны ширина и высота. redraw() выполняется после того как блок становится видимым. алерт после строки с перерисовкой говорит о том что она вроде бы отработала.
живой пример: здесь исходный код:
var container = YMaps.jQuery("#YMapsID"), map = new YMaps.Map(container[0]
map.setCenter(new YMaps.GeoPoint(44.416667, 42.833333), 9);
var placemark = new YMaps.Placemark(new YMaps.GeoPoint(44.416667, 42.833333), {style: "default#redPoint", balloonOptions: {maxWidth: 250}}
placemark.name = "Даргавс - городок мертвых";
placemark.description = "Историко-архитектурный комплекс в с. Даргавс. Состоит из 97 склепов разной датировки.";
map.addOverlay(placemark);
placemark.openBalloon(
YMaps.jQuery("#change-map
container.css('display', (container.css('display') == 'none') ? '' : 'none');
map.redraw(
alert('change-map-visibility');
return false;
}
})
<div class='cats cords'>Географические координаты: 44.416667, 42.833333 (<a href='#' class='sub' rel='YMapsID' id='change-map-visibility'>показать на карте</a>)</div>
<div id='YMapsID' style='width:600px;height:600px;display:none;'></div>