javascript - 如何为 Google Maps V3 中的所有标记创建一个事件处理程序?

标签 javascript google-maps google-maps-api-3

我知道如果我在 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/

相关文章:

javascript - 似乎没有使用元素中传入的选项执行 Angular 指令

javascript - 通过单击 Google map 标记来切换 ngShow 属性

javascript - 谷歌地图方向 - 在 IE7 中不居中/缩放

android - 在 WebView 谷歌地图中获取当前位置

javascript - ExtJS 和谷歌地图

javascript - 为什么需要创建一个http服务器?

javascript - 如何从网站获取 : js, css、图像等所有文件并保存以供离线使用?

javascript - 使用 jQuery/Javascript 通过 id 下载文件

google-maps - 谷歌地图 API v3.9 : Blurry custom markers when zooming

javascript - 谷歌地图 PanTo OnClick