【发布时间】:2012-12-06 16:46:05
【问题描述】:
可能重复:
How to get around the jslint error ‘Don’t make functions within a loop.’
公平的警告,我是一个非常初学者。我正在开发一个 google maps api v3 项目 (http://jsbin.com/ofepet/9/edit),我在 JSBin 上有一个“不要在循环中创建函数”警告。我想修复它,但我使用的是我在其他地方得到的代码,所以我很难准确理解发生了什么——尤其是最后 7 行。
简而言之,我对代码的理解不够深入,无法将函数从循环中取出。错误出现在倒数第二行。
function setMarkers(map, markers) {
for (var i = 0; i < markers.length; i++) {
var sites = markers[i];
var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
var marker = new google.maps.Marker({
position: siteLatLng,
map: map,
title: sites[0],
zIndex: sites[3],
html: sites[4],
icon: featureImage
});
var contentString = "Some content";
google.maps.event.addListener(marker, "click", function () {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
}
如何解决这个错误?
【问题讨论】:
-
除了该问题中的解决方案对于上述用例而言不必要地复杂。此用户不需要为每个循环迭代创建自定义处理程序。
标签: javascript function loops google-maps-api-3