douzai2562 2014-05-19 04:18
浏览 19
已采纳

使$ .getJSON立即可用与for

EDIT:

$.getJSON(url, function (data) {
var x = 0;
var places = [];
$.each(data.lugar, function (i, user) {
    places[x] = {
        canEdit: false,
        lat: user.latt,
        lng: user.lng,
        name: "Somewhere "+x
    };
    alert(isNumber(places[x].lng));
    x++;
}).promise().done(function () {
    $(document).ready(function() {
        runExample5();
    });
});
});

So Im trying to populate a map in javascript like this

{ showOnLoad: places ....

And it gets the job done with a for loop like this (it does show the markers) THIS WORKS

 var places = [];
  for(var x= 0; x<10; x++){
  places[x] = {
    canEdit: false,
    lat: 53.79+x,
    lng:-1.5426760000000286+x,
    name: "Somewhere "+x

}
}

But when I try to populate it with the info I receive on JSON/PHP from anothe page, it does not work, and it does not populate with markers...

 var places = [];
$.getJSON(url, function (data) {
var x = 0;
$.each(data.lugar, function (i, user) {
    places[x] = {
        canEdit: false,
        lat: user.latt,
        lng: user.lng,
        name: "Somewhere "+x
    };
    x++;
}).promise().done(function () {
});
});



function runExample5(a) {
 $("#search-for-places").mapsed({

    showOnLoad: places,
    allowGeo: true, 
    disablePoi: true


});                                 
 }


 $(document).ready(function() {
runExample5();

 });

I get no population unless I call another function and then it automatically show the markers but I cant seem to get it at the beginning when the map first loads but I get it when I use the FOR loop.

  • 写回答

1条回答 默认 最新

  • doucheng1944 2014-05-19 05:11
    关注

    Just for the sake of completion, here's the correct solution:

    $.getJSON(url).then(function (data) {
        // instead of map(), you could also use that tedious `each` loop
        // it would work the same
        return $.map(data.lugar, function (i, user) {
            return {
                canEdit: false,
                lat: user.latt,
                lng: user.lng,
                name: "Somewhere "+x
            }
        });
    }).done(function (places) {
        $(document).ready(function() {
            // if you wanted to call a runExample5 function, make `places` a parameter
            $("#search-for-places").mapsed({
                showOnLoad: places,
                allowGeo: true, 
                disablePoi: true
            });
        });
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值