所以我相信這是一個簡單的問題,但一直沒能弄清楚。下面顯示了一個創建並添加到「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