日期:2014-05-16  浏览次数:20371 次

菜鸟问javascript基础问题
JScript code

for(var len=0;len<200;len++){

google.maps.event.addListener(markerList[len].marker, 'click', function(){
                markerList[len].infoWindow.open(map,this);
            });

}



我希望得到的效果是点击0号marker那么弹出0号infoWindow,点击1号就弹出对应1号的infoWindow... 但问题是这样的代码最后的结果是0~199号marker被点击后就是返回第199号infoWindow,请问我该如何处理这个问题?

------解决方案--------------------
JScript code
function createpack(len){
return function(){ markerList[len].infoWindow.open(map,this);}
}

//做闭包

for(var len=0;len<200;len++){

google.maps.event.addListener(markerList[len].marker, 'click',createpack(len) );

}