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

Javascript 从initialize()调用另一个.js文件中的函数,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,在GoogleMap的初始化函数中,我需要从另一个.js文件调用一个函数 问题:当我尝试以下代码时,当侦听器被触发时,我得到一个错误“未捕获引用错误:getPlacesByBounds未定义”。我怎样才能解决这个问题?我不想将该函数移到initialize()函数,因为它太长了 JS代码 var map; function initialize() { var center_latlng = new google.maps.LatLng(42.354183, -71.065063);

在GoogleMap的初始化函数中,我需要从另一个.js文件调用一个函数

问题:当我尝试以下代码时,当侦听器被触发时,我得到一个错误
“未捕获引用错误:getPlacesByBounds未定义”
。我怎样才能解决这个问题?我不想将该函数移到
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的
$(函数(){…})中

您需要确保声明
getPlacesByBounds
的代码已运行,然后再尝试使用它。而且
getPlacesByBounds
是可见的


顺便说一下,您应该考虑为函数创建一个命名空间(例如GETPaseSeByLimes),以避免污染全局范围。

< P>我猜想,在jQuery中的GETPosiSeBythSub()在侦听器被触发时没有加载。你正在异步加载谷歌地图吗?如果不尝试:

同意;创建一个名称空间,在其中设置getPlacesByBounds。在documentready中声明一个实用函数会导致像您看到的那样的问题。它将只存在于该函数的范围内,因此将来的请求也看不到它。是否可以在
窗口实例化
映射
对象。onload
?在调用函数时,您在函数调用中引用的另一个JS文件可能尚未完成加载。另外,由于
getPlacesByBounds()
函数是在jQuery中定义的,您不需要使用
jQuery.
$。
(即:
$.getplacesbounds();
)预先设置
getplacesbounds()
)来预先设置
getplacesbounds()
?使用
window.onload
加载地图有任何缺点吗?