Доступ к переменной Google maps через jQuery - PullRequest
2 голосов
/ 26 июня 2010

Как я могу загрузить карты Google следующим образом:

function loadScript() {
    var script = document.createElement("script");
    script.setAttribute("src", "http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAAXN1Nhid00zgr5mrYEM7MhQE7kuAsiuX3WD62vgNgdNYG4wQzhQs7fQD8XzGkuXLIejRfouX3li8xg&async=2&callback=loadMap");
    script.setAttribute("type", "text/javascript");
    document.documentElement.firstChild.appendChild(script);
}
function loadMap(){
    var map = new GMap2(document.getElementById("google_map"));
}

$(document).ready(function(){
  loadMap();
  //How I can access the map variable here ?
});

И есть доступ к переменной карты через jQuery?

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

Ответы [ 2 ]

2 голосов
/ 26 июня 2010

Так нельзя. map объявлено локально в loadMap, и вы не можете получить к нему доступ вне этой функции. Кроме того, вы должны сначала выполнить loadScript. Кстати, не используйте setAttribute для установки src и type.

Вместо этого используйте переменную, объявленную во внешней области (предпочтительно не в глобальной области), например

<script>
    function loadScript() {
        var script = document.createElement("script");
        script.src = "http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAAXN1Nhid00zgr5mrYEM7MhQ
        script.type = "text/javascript";
        document.documentElement.firstChild.appendChild(script);
    }

    loadScript();
</script>
<!-- close script element here to update DOM -->
<script>
    var map;  // declared outside loadMap

    function loadMap(){
        map = new GMap2(document.getElementById("google_map"));
    }

    $(document).ready(function(){
      loadMap();
      // Now map is available here
    });
</script>
2 голосов
/ 26 июня 2010

Изменить область действия переменной map, скажем, объявить ее вне loadMap() функция изменить loadMap() функция на

     var map;
     function loadMap(){
            loadScript() ;
            map = new GMap2(document.getElementById("google_map"));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...