Как сделать один обработчик событий для всех маркеров в Google Maps V3? - PullRequest
2 голосов
/ 23 июля 2010

Я понимаю, что если у меня есть несколько маркеров на карте, и мне нужно обрабатывать щелчки на них, я должен настроить обработчик для каждого маркера следующим образом:

// ...
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
});

Но если у меня естьмного маркеров, не слишком ли тяжело?Можно ли как-то установить один обработчик и выяснить, какой маркер был нажат внутри него?

1 Ответ

5 голосов
/ 26 июля 2010

Сделать это так, как я хотел, невозможно, это правда. Но я нашел способ сделать это другим способом, который намного лучше, чем иметь обработчик для каждого маркера. Это должно было быть очевидно для меня, но это не было:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...