我知道如果我在 map 上有多个标记,并且我需要处理对它们的点击,我必须像这样为每个标记设置一个处理程序:
// ...
var marker = new google.maps.Marker({position: new google.maps.LatLng(55, 37)});
marker.setMap(map);
var listener = google.maps.event.addListener(marker, 'click', function(event){
// my listener handler here
});
但是如果我有很多马克笔,会不会太重了?我能以某种方式设置一个处理程序并确定在其中单击了哪个标记吗?
最佳答案
按照我想做的方式去做是不可能的,这是真的。但是我找到了另一种方法,这比每个标记都有一个处理程序要好得多。这对我来说应该是显而易见的,但事实并非如此:
function markerHandler(event){
window.console.log(this);
// 'this' variable is the marker that has been clicked
}
var marker = new google.maps.Marker({position: new google.maps.LatLng(55, 37)});
marker.setMap(map);
var listener = google.maps.event.addListener(marker, 'click', markerHandler);
关于javascript - 如何为 Google Maps V3 中的所有标记创建一个事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3319400/