Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为Google Maps V3中的所有标记创建单个事件处理程序?_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

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

Javascript 如何为Google Maps V3中的所有标记创建单个事件处理程序?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我知道如果我在地图上有多个标记,并且我需要处理对它们的点击,我必须为每个标记设置一个处理程序,如下所示: // ... 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

我知道如果我在地图上有多个标记,并且我需要处理对它们的点击,我必须为每个标记设置一个处理程序,如下所示:

// ...
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中调用函数时使用的隐式“This”上下文的一个很好的例子。