我正在尝试使用 Javascript/jQuery/Google Maps API 编写一些代码。
但是,我的脚本中的执行顺序有点奇怪。
var flats=[];
function initialize() {
var mapOptions = {
zoom: 10,
center: new google.maps.LatLng(50.062, 19.937),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
/* Puling flats data using my API */
$.getJSON("http://ks3353689.kimsufi.com:5000/v1/closest_pointlng=19.937&lat=50.062",parseFlat);
function parseFlats(data){
/* I put flats data in format usable by Google maps API */
$.each(data, function(i, item){
flat = [];
flat.push('flat_name');
flat.push(parseFloat(item.latitude));
flat.push(parseFloat(item.longitude));
// z-index to display flats on map
flat.push(i+1);
flats.push(flat);
});
console.log("I'm inside the function");
}
console.log("activating markers");
setMarkers(map, flats);
}
我认为 jQuery API 调用将在 setMarkers 函数之前执行,但是当我查看 firebug 时,顺序不同:
activating markers
I'm inside the function
我究竟做错了什么?如何确保在 setMarkers 函数之前执行 jQuery 部分?