这里的东西简化版本我试图运行:如何将JS变量的值(不是引用)传递给函数?
for (var i = 0; i < results.length; i++) {
marker = results[i];
google.maps.event.addListener(marker, 'click', function() {
change_selection(i);
});
}
,但我发现,每一位聆听者使用results.length的值(当for循环终止值)。我如何添加监听器,以便每次使用我添加它时的值,而不是对i的引用?
您需要在'marker'之前加'var'来不污染全局命名空间。 – ThiefMaster 2011-03-09 14:48:11
@ThiefMaster:奇怪的是,我刚才在第一次看到这个答案后想到了同样的事情。然而,看着OP的代码,我们不能完全确定'marker'还不是一个全局变量。 – 2011-03-09 14:50:16
已经使用谷歌的地图API,我们可以安全地打赌,标记的作用域在for循环之外。很高兴安迪。 – 2011-04-14 19:28:33