请问我这个代码
for(var i=0;i<markers.length;i++){
console.log(infoWindows[i]);
markers[i].addListener('click', function() {
console.log(infoWindows[i]);
infoWindows[i].open(map, this);
});
}
在第一次console的时候有值,第二次就没有了,为什么,我怎么把 infoWindows[i]的值传入事件函数中?
请问详细一点。。。看不明白代码
请问详细一点。。。看不明白代码
请问详细一点。。。看不明白代码
难么你定义function的时候可以给定个参数啊,分开写,类似如下代码:
for(var i=0;i<markers.length;i++){
console.log(infoWindows[i]);
markers[i].addListener('click', onClick(infoWindows[i])));
}
function onClick(value) {
console.log(value);
value.open(map, this);
})
做个闭包,使处理使用引用到的是当前遍历到的markers,要不最后你的i是循环后的最大值markers.length
for(var i=0;i<markers.length;i++){
console.log(infoWindows[i]);
markers[i].addListener('click', onClick(infoWindows[i]));
}
function onClick(value) {
return function () {
value.open(map, this);
}
};