Люди. Возник вопрос, скорее всего по программированию на JS
Есть Яндекс карты на сайте. Добавляются с помощью API и JS. + Quicktabs. Проблема такая: При переключении на другой таб, карта не перерисовывается, т.е. вместо карты серый фон. Кто сталкивался и как решил? Я предполагаю, что нужно перехватить событие нажатия на заголовок таба и перерисовать самому, но как это сделать?
[Решение]
В обработчик добавлен перехват события по нажатию вот так:
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 ссылок - заголовков табов.
Комментарии
а зачем её каждый раз перерисовывать?
При переключении на следующий таб с другой картой, карта сама есть, но она в виде серого квадрата. В общем, проблема решена )
Яндекс Карты 2.0: Биндим клик, jquery > 1.7
YMaps.ready(function () {
map.container.fitToViewport();
})
});
Только не особо мне помогло, но 100% всё равно не растягиваются(