我想用js实现在地图上动态添加标注的功能,为了让它更像动画,所以使用了setInterval。后台将所有的数据是存在json里,页面上将json转化为数组形式,即store[],store里面有坐标对象,坐标对象的属性包括经度和纬度,同时我的store也定义为全局变量了。
//p为store的下标,定义为全局变量
var p = 0;
//定位函数
function test(){
    //在函数的开始测试能否获得数组里的经纬度,并且测试输出正常
    alert(store[p].localtionX);
    //问题在这里,我的下面一个语句,不能输出经纬度,总是说undefined,如果是alert(store[p])就显示为object
    setInterval(function(){
alert(store[p].localtionX);
                                p++;
    },3000);
}
我是个js新手,请教一下,这个问题出在哪里,为什么会出现这种情况,我应该查看哪方面的资料,请指引个思路,谢谢各位了

解决方案 »

  1.   

    木有问题,检查一下localtionX这个属性名称有没有拼错。
    <script type="text/javascript">
    var store = [
    {
    locationX: 111,
    locationY: 111
    },
    {
    locationX: 222,
    locationY: 222
    }
    ];
    var p = 0;
    setInterval(function() { if (store[p]) { alert(store[p].locationX); p ++; } }, 3000);
    </script>
      

  2.   

    谢谢你的回答,最终我发现在js的方法里好像不能传对象,只能将json字符串传递,用的时候在转成对象