У меня возникла довольно странная проблема с попыткой собрать воедино несколько динамичное отображение 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
}
Функция работала, но проблема в том, что она вызывается сразу при загрузке страницы. После исследования я узнал, что когда вы вызываете функцию со скобками, эта функция вызывается немедленно, а затем ссылаются на ее возвращаемое значение. источник
Итак, теперь я немного застрял в том, как именно передать этот идентификатор в функцию, не вызывая ее немедленно. Я нашел несколько хакерских способов сделать это, которые могут сработать, но я чувствую, что это не должно быть чем-то, что мне нужно хакать вместе...