从initialize()调用另一个.js文件中的函数

时间:2011-12-07 16:27:14

标签: javascript jquery google-maps google-maps-api-3

在我的谷歌地图的初始化功能中,我需要从另一个.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的$(function() {...});

2 个答案:

答案 0 :(得分:1)

在尝试使用之前,您需要确保声明getPlacesByBounds的代码已运行。 getPlacesByBounds可见。

另外,您应该考虑为您的函数创建命名空间(例如getPlacesByBounds),以避免污染全局范围。

答案 1 :(得分:0)

我的猜测是,jQuery中的getPlacesByBounds()在触发侦听器时未加载。您是否异步加载谷歌地图?如果没有尝试:http://code.google.com/apis/maps/documentation/javascript/basics.html#Async