[Решено] Quicktabs и Яндекс карты. Серый квадрат вместо карты.

Главные вкладки

Аватар пользователя evman evman 26 декабря 2011 в 14:51

Люди. Возник вопрос, скорее всего по программированию на JS

Есть Яндекс карты на сайте. Добавляются с помощью API и JS. + Quicktabs. Проблема такая: При переключении на другой таб, карта не перерисовывается, т.е. вместо карты серый фон. Кто сталкивался и как решил? Я предполагаю, что нужно перехватить событие нажатия на заголовок таба и перерисовать самому, но как это сделать?

[Решение]

В обработчик добавлен перехват события по нажатию вот так:

window.onload = function () {
    var rndmap = new YMaps.Map(document.getElementById("YMapsRND"));
    <... Определение параметров карты ...>                   

    var mosmap = new YMaps.Map(document.getElementById("YMapsMOS"));
    <... Определение параметров карты ...>                   

    // Собственно, перерисовать карту при нажатии на ссылку (заголовок таба)
    YMaps.jQuery("#quicktabs-tab-_contactstabs-0").bind('click', function () {
        mosmap.redraw(); // Перерисовывает карту
        return false;
    });

    YMaps.jQuery("#quicktabs-tab-_contactstabs-1").bind('click', function () {
        rndmap.redraw(); // Перерисовывает карту
        return false;
    });
}

Где quicktabs-tab-_contactstabs-0 и quicktabs-tab-_contactstabs-1 - это id ссылок - заголовков табов.

Комментарии

Аватар пользователя evman evman 26 декабря 2011 в 15:21

При переключении на следующий таб с другой картой, карта сама есть, но она в виде серого квадрата. В общем, проблема решена )

Аватар пользователя каранёвы каранёвы 12 ноября 2012 в 13:08

Яндекс Карты 2.0: Биндим клик, jquery > 1.7

        $('.horizontal-tab-button-3').on('click', function (e) {
           YMaps.ready(function () {

            map.container.fitToViewport();

                })
        });

Только не особо мне помогло, но 100% всё равно не растягиваются(