Клуб API Карт

Не загружается карта в модальное окно на jquery

versta72
14 августа 2009, 10:07

Пытаюсь загрузть карту в jquery-модальное окно. ( вот пример этого скрипта )


в index.html как полагается вставляю код

<script src="http://api-maps.yandex.ru/1.0/?key=........

.....

</script>


а в подгружаемый файл map.html -

<div id="YMapsID" style="width:600px;height:450px"></div>
<div style="width:600px;text-align:right;font-family:Arial"><a href="http://api.yandex.ru/maps/tools/constructor/" style="color:#1A3DC1">Создано с помощью инструментов Яндекс.Карт</a></div>


Но ничего не происходит, карта не грузится. По отдельности все работает. 

Как это можно лечить? может кто сталкивался...



UPD


Тоже самое и c highslide JS  - серый фон, карты нет


Подгрузка осуществляется


    <a class="highslide" onclick="return hs.htmlExpand(this, { outlineType: 'rounded-white', wrapperClassName: 'draggable-header',headingText: 'Full HTML content' } )" href="#">ссылка</a>


    <div class="highslide-maincontent">

<!--Здесь подгружаем карту-->


<div id="YMapsID" style="width:600px;height:450px"></div>
<div style="width:600px;text-align:right;font-family:Arial"><a href="http://api.yandex.ru/maps/tools/constructor/" style="color:#1A3DC1">Создано с помощью инструментов Яндекс.Карт</a></div>
   
    </div>
</div>




2 комментария
Подписаться на комментарии к посту
Т.к. карта инициализируется в скрытом диве, то после того, как он будет показан - карту нужно перерисовать с помощью метода redraw().
http://api.yandex.ru/maps/jsapi/doc/ref/reference/map.xml#redraw

Вы используете библиотеку jQuery Tools. После отображения модального окна срабатывает обработчик события onLoad, в котором и нужно перерисовывать карту.
Подробнее можно почитать здесь:
http://flowplayer.org/tools/overlay.html#api

А теперь реализация:
$(function() {
    var map = new YMaps.Map($("#YMapsID")[0]);
    map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

    $("a[rel]").overlay({
        onLoad : function () {
            map.redraw();
        }
    });
});

Подразумевается, что есть примерно вот такая html-разметка:

   
       
   

Блин, никак не выходит. кручу-верчу (((

то же ситуация - на ссылку повешен вызов highslide:

 


          ссылка

div c id='mapping':

 



    
    Закрыть
    
    

    
    

    
        

ну и  на странице вызывается фунция рисования карты:

вызов с передачей координат:

 

 

сама функция:

 

function map(coord1,coord2) {
                       var map = new YMaps.Map(document.getElementById("YMapsID"));
                    map.setCenter(new YMaps.GeoPoint(coord1,coord2), 60);
                    map.addOverlay(new YMaps.Placemark(new YMaps.GeoPoint(coord1,coord2)));
                    map.addControl(new YMaps.TypeControl());
                    map.addControl(new YMaps.ToolBar());
                    map.addControl(new YMaps.Zoom());

    };

Вот никак не могу придумать куда и как впихнуть redraw() :-(  или как вызвать функцию map после вывода модального окна.