Javascript谷歌地图标记类别

时间:2011-12-09 10:29:34

标签: jquery google-maps

这是在谷歌初始化功能内,工作正常。这是下面的代码循环遍历标记marker[i] is undefined

$.each(places, function(index, value) {
    x++;
    var pos = new google.maps.LatLng(value[1], value[2]);
    var icon = value[3];

    if(value[3] == 'HI') icon = "NF";
    if(value[3] == '') icon = "WH";

    marker[x] = new google.maps.Marker({     
        position: pos,
        map:map,
        title: value[0],
        shadow: shadow,
        icon: "../img/markers/" + icon + ".png"
    });

    marker[x].locType = icon;
});

这是初始化函数之外的循环 - 获取marker[i] is undefined,执行alert(marker)会给我[object Object],[object Object],[object Object],[object Object],[object Object]等等。

$(".team").click(function() {
    var type = $(this).attr("id");
    $.each(marker, function(i, val) {
        if(marker[i].locType == type) marker[i].setVisible(false);
    })
});

2 个答案:

答案 0 :(得分:1)

我认为问题是

x++;

这可能表示您的数组从索引1而不是0

开始

所以结果可能是:

[1] = Object
[2] = Object
etc.

运行$.each方法时会尝试

marker[0].locType

解决方案是将x++移至$.each(places, function(index, value) {

的末尾

答案 1 :(得分:0)

您是否设置了阵列?

var marker = Array();