У меня возникла странная проблема с попыткой соединить несколько динамичный дисплей Google Maps. У меня есть наложения на карте, которые я хотел бы вызвать функцию при нажатии. Изначально у меня было все жестко запрограммировано, поэтому у меня была функция для каждого наложения, например:
google.maps.event.addListener(southEast, 'click', showSouth);
function showSouth() {
// do stuff
}
Это сработало без проблем, но затем я сделал всю страницу более динамичной, поэтому я решил создать одну функцию, которая передавала бы идентификатор, а затем отображала бы его на основе этого, что, по моему мнению, должно было быть изначально настроено изначально , Я изменил код, чтобы он выглядел так:
google.maps.event.addListener(southEast, 'click', showArea(1));
function showArea(id) {
// do stuff based on that id
}
Функция сработала, но проблема в том, что она вызывается сразу при загрузке страницы. После исследования я узнал, что когда вы вызываете функцию с круглыми скобками, эта функция вызывается немедленно, а затем возвращается ее возвращаемое значение. источник
Так что теперь я немного застрял в том, как именно передать этот идентификатор функции, не вызывая ее немедленно. Я нашел несколько хакерских способов сделать это, которые могли бы работать, но я чувствую, что это не должно быть чем-то, что я должен взломать вместе ...