在Javascript循环中附加监听器

时间:2017-05-07 09:37:22

标签: javascript jquery google-maps javascript-events

我有一组对象(卡片),其中包含latitudelongitudefor(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); }); } 。然后,我正在构建一系列标记以附加到GoogleMap地图:

.addListener

在每个标记上,我想在click事件上附加回调。使用标记的myListenerCallback(id)方法可以很容易地完成。问题是,我想触发一个回调,其中包括卡的id(作为输入参数):builder.setAutoCancel(true)。看起来所有的回调都是使用数组的最后一个id来触发的。如何触发传递相应ID的回调?

1 个答案:

答案 0 :(得分:1)

cards.forEach(function(card){
  var id = card["id"];
  var lat = card["lat"];
  var lon = card["lon"];

var marker = new google.maps.Marker({ position: new google.maps.LatLng(lat, lon)});
marker.setMap(map);
marker.addListener('click', function(){
    myListenerCallback(id);
});
});

请参阅重复的帖子以获取说明...