Вызов функции в другом файле .js из initialize () - PullRequest
0 голосов
/ 07 декабря 2011

В функции инициализации моей карты Google мне нужно вызвать функцию из другого файла .js.

Проблема : Когда я попробовал следующий код, я получаю сообщение об ошибке "Uncaught ReferenceError: getPlacesByBounds is not defined" при срабатывании слушателя. Как я могу решить эту проблему? Я не хочу переносить эту функцию на функцию initialize(), поскольку она слишком длинная.

Код JS

var map;

function initialize() {
    var center_latlng = new google.maps.LatLng(42.354183, -71.065063);

    var options = {
        zoom: 15,
        minZoom: 11,
        maxZoom: 19,
        center: center_latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    //instantiate map object
    map = new google.maps.Map(document.getElementById("map_canvas"), options);

    //attach listener to the map object.
    google.maps.event.addListener(map, 'idle', function() {
        getPlacesByBounds ();
    });

Дополнительная информация: Функция getPlacesByBounds() находится в jQuery's $(function() {...});

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Необходимо убедиться, что код, объявляющий getPlacesByBounds, запущен, прежде чем пытаться его использовать. И это getPlacesByBounds видно.

Кроме того, вы должны рассмотреть возможность создания пространства имен для ваших функций (например, getPlacesByBounds), чтобы избежать загрязнения глобальной области.

0 голосов
/ 07 декабря 2011

Я предполагаю, что getPlacesByBounds () в jQuery не загружается во время запуска слушателя Вы загружаете карты Google асинхронно? Если нет, попробуйте: http://code.google.com/apis/maps/documentation/javascript/basics.html#Async

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...