Javascript 从initialize()调用另一个.js文件中的函数
在GoogleMap的初始化函数中,我需要从另一个.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);
“未捕获引用错误: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
加载地图有任何缺点吗?