这是在谷歌初始化功能内,工作正常。这是下面的代码循环遍历标记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);
})
});
答案 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();