我有一个包含id
,latitude
和longitude
的对象(卡片)数组。然后我建立一系列标记以附加到GoogleMap地图上:在Javascript中以循环方式附加侦听器
for(var c = 0; c < cards.length; c++)
{
var id = cards[c]["id"];
var lat = cards[c]["lat"];
var lon = cards[c]["lon"];
var marker = new google.maps.Marker({ position: new google.maps.LatLng(lat, lon)});
marker.setMap(map);
marker.addListener('click', function(){
myListenerCallback(id);
});
}
在每个标记上,我想在click事件上附加回调。这可以通过使用标记的.addListener
方法很容易地完成。问题是,我想发起一个回调,其中包括卡的ID(作为输入参数):myListenerCallback(id)
。看起来像所有的回调是使用数组的最后一个ID触发。我怎样才能通过相应的ID来触发回调?
好,谢谢。使用闭包的内存含义是什么?如果我一遍又一遍地重复运行循环呢?该集合是否在不断增长或者新功能被覆盖(同一套课程) –