【发布时间】:2012-03-09 17:24:23
【问题描述】:
我在尝试拼凑一个有点动态的 Google 地图显示时遇到了一些奇怪的问题。我在地图上有叠加层,我想在单击时调用一个函数。最初我对所有东西都进行了硬编码,所以我为每个叠加层都有一个函数,如下所示:
google.maps.event.addListener(southEast, 'click', showSouth);
function showSouth() {
// do stuff
}
这没有问题,但后来我使整个页面更加动态,所以我决定制作一个可以传递 ID 的函数,然后根据它显示,这就是我觉得它本来应该设置的方式.我修改了代码,看起来更像这样:
google.maps.event.addListener(southEast, 'click', showArea(1));
function showArea(id) {
// do stuff based on that id
}
该函数有效,但问题是它在页面加载时立即被调用。经过研究,我了解到,当您使用括号调用函数时,会立即调用该函数,然后引用它的返回值。 source
所以现在我对于如何将 ID 传递给函数而不让它立即调用函数有点困惑。我发现了一些可行的方法,但我觉得这不应该是我必须一起破解的东西......
【问题讨论】: