我有一个数组,其中包含与我创建的 Google Maps Polygon Objects 同名的字符串。我想遍历数组以设置特定选项。这是代码:
for (var i = 0; i < statesPoly.length; i++) {
google.maps.event.addListener(statesPoly[i], 'mouseover', function() {
statesPoly[i].setOptions({ strokeWeight: '2' });
});
}
执行时,我得到“无法调用未定义的方法'setOptions'”,因为脚本似乎在字面上使用 statesPoly[i]。例如,当我将 statesPoly[i] 替换为 statesPoly[11] 时,脚本会按预期工作。
当我尝试这样的事情时,循环也按预期工作:
for (var i = 0; i < statesPoly.length; i++) {
alert(statesPoly[i].strokeColor);
}
我究竟做错了什么?
更新:
这里越来越近。我相信this
在某些情况下使用的原因是因为我的函数需要一个对象并且我给它一个字符串。会是这样吗?
alert(statesPoly[0]);
google.maps.event.addListener(sarawakPoly, 'mouseover', function() {
$("#"+statesPoly[0]).addClass("highlight");
sarawakPoly.setOptions({ strokeWeight: '2' });
//infowindow.open(map,marker);
});
上面的代码将通过 SarawakPoly 发出警报,并且使用 statesPoly[0] 作为 ID 中的字符串可以按预期工作。这
alert(statesPoly[0]);
google.maps.event.addListener(statesPoly[0], 'mouseover', function() {
$("#"+statesPoly[0]).addClass("highlight");
statesPoly[0].setOptions({ strokeWeight: '2' });
//infowindow.open(map,marker);
});
不起作用,因为“未捕获的类型错误:无法读取未定义的属性‘鼠标悬停’”
如果我是对的,如何让我的 JS 将我的数组变量转换为对象?