Javascript jshint-Don';t在循环中生成函数-谷歌地图
我创建了一个带有一些标记的谷歌地图(来自wordpress帖子),但当我在控制台上运行“gulp”时,我有一个错误:“不要在循环中生成函数。” 我创建了一个复制我的本地主机的情况,任何人都可以帮我解决这个问题吗 我知道如果我写“//jshint ignore:line”就可以创建脚本,但我认为这个问题可能是我在chrome上遇到的另一个bug的问题:(Javascript jshint-Don';t在循环中生成函数-谷歌地图,javascript,google-maps,loops,gulp,jshint,Javascript,Google Maps,Loops,Gulp,Jshint,我创建了一个带有一些标记的谷歌地图(来自wordpress帖子),但当我在控制台上运行“gulp”时,我有一个错误:“不要在循环中生成函数。” 我创建了一个复制我的本地主机的情况,任何人都可以帮我解决这个问题吗 我知道如果我写“//jshint ignore:line”就可以创建脚本,但我认为这个问题可能是我在chrome上遇到的另一个bug的问题:( var infowindow=new google.maps.infowindow(); var gmarkers=[]; 函数初始化(){ m
var infowindow=new google.maps.infowindow();
var gmarkers=[];
函数初始化(){
map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:新google.maps.LatLng(51.508293,-0.127701),
mapTypeControl:false,
泛控制:错误,
ZoomControl选项:{
位置:google.maps.ControlPosition.RIGHT\u CENTER
},
mapTypeId:google.maps.mapTypeId.ROADMAP
});
对于(变量i=0;i
使用IIFE函数,将其移出循环并为其命名,如makeHandler
(但不要调用它)
然后在循环中,执行以下操作:
for (var i = 0; i < locations.length; i++) {
var marker = new google.maps.Marker({
position: locations[i].latlng,
icon: locations[i].marker,
map: map,
animation: google.maps.Animation.DROP,
optimized : false
});
gmarkers.push(marker);
google.maps.event.addListener(marker, 'click', makeHandler(marker, i));
}
for(变量i=0;i
使用IIFE函数,将其移出循环并为其命名,如makeHandler
(但不要调用它)
然后在循环中,执行以下操作:
for (var i = 0; i < locations.length; i++) {
var marker = new google.maps.Marker({
position: locations[i].latlng,
icon: locations[i].marker,
map: map,
animation: google.maps.Animation.DROP,
optimized : false
});
gmarkers.push(marker);
google.maps.event.addListener(marker, 'click', makeHandler(marker, i));
}
for(变量i=0;i
为循环中的标记单击创建事件处理程序。您需要按照此处的方式重新排列代码:为循环中的标记单击创建事件处理程序。您需要按照此处的方式重新排列代码:
for (var i = 0; i < locations.length; i++) {
var marker = new google.maps.Marker({
position: locations[i].latlng,
icon: locations[i].marker,
map: map,
animation: google.maps.Animation.DROP,
optimized : false
});
gmarkers.push(marker);
google.maps.event.addListener(marker, 'click', makeHandler(marker, i));
}