所以我相信这是一个简单的问题,但一直没能弄清楚。下面显示了一个创建并添加到“mousedown”事件中的谷歌地图标记的功能。这是为迭代的每个标记创建的。将静态值传递给动态Javascript函数
逃避我的部分位于'pickup pickup(data [i] .id)'下方的第5行,在此函数调用中提交的值始终是最后一次迭代值。我想在创建每个标记时将我正在迭代的静态值粘贴在那里。
for (i in data) {
google.maps.event.addListener(marker, 'mousedown', function() {
state = PINCH;
map.setOptions({draggable: false});
timeoutId = setTimeout(function() { pickupVenue(data[i].id) }, 1000);
});
}
----工作结果----
google.maps.event.addListener(marker, 'mousedown', pickupMarker(data[i].Listing.id));
function pickupMarker(id) {
return function() {
state = PINCH;
map.setOptions({draggable: false});
timeoutId = setTimeout('pickupVenue('+id+')', 1000);
}
}
@duante - 我知道你已经选择了一个答案,但我希望你可以看看我的新答案,因为它是一个替代方法,可以使用效用函数使定时器在这些情况下更容易使用。 – jfriend00
@ jfriend00 - 我很感谢你的回答,可能会用它来做一些事情,但帕特里克正是我所期待的。 – duante