Друзья-коллеги, всем салют! )))
Раньше карта на моём сайте загружалась вместе со страницами, где была нужна и иногда, из-за ёмких оверлеев, прилично подвешивала браузер, и вот я решил отделить загрузку карты от загрузки страницы, загружая карту лишь тогда, когда это понадобится посетителю. При первом клике он получит прелоадер, потом же карта будет появляться мгновенно.
Но не всё так гладко, как в ТЗ )) Я уже полазил по нашему клубу и выяснил, что скрипт с яндекса нужно грузить немного другой для такой задачи, но вот дальше...
Из рабочего jquery подгружаю скрипт работы с картой:
$(function() {
/* ------- -----some code ---- - - ----- -- -- - --- */
var mapScriptNoLoad = true;
$('.show-map').bind('click', function(e) {
e.preventDefault();
if (mapScriptNoLoad)
$.getScript('/theme/mine/j.my-map.js',
function () {mapScriptNoLoad = false;})
});
/* ------- -----some code ---- - - ----- -- -- - --- */
});
В загруженном скрипте j.my-map.js подгружаю скрипт яндекса и пытаюсь запустить карту:
$(function() {
$('<div id="YMapsID"></div>').appendTo($('body'));
$.getScript('http://api-maps.yandex.ru/1.1/index.xml?key=key&loadByRequire=1',
function () {
setTimeout(function(){YMaps.load(initMap);}, 1);
});
});
YMaps.jQuery(function () {
function initMap() {
map.setCenter и подобное....
}
});
Ошибка - initMap is not defined
Я понимаю, что у меня пробелы в теории, будьте так любезны, подскажите, как правильно оформить код?
Спасибо!