您的位置:首页 > Web前端 > JavaScript

js 在for循环执行延时方法时 局部变量污染

2017-12-28 17:38 281 查看
for (var i = 0; i < data_info.length; i++) {
var marker = new BMap.Marker(new BMap.Point(data_info[i][0],
data_info[i][1]),{icon:myIcon}); // 创建标注
var content = data_info[i][2];
var projectcontent = data_info[i][3];
map.addOverlay(marker); // 将标注添加到地图中

addMarkerListerner(marker, content,projectcontent);

marker.setLabel(new BMap.Label(content, {
offset : new BMap.Size(35, 10)
}
));
}

function addMarkerListerner(marker, content,projectcontent) {
marker.addEventListener("click", function(marker) {
//省略...
});
}


如上, 如果addEventListener直接写在for循环里, 拿到的content和projectcontent永远是for循环拿到的最后一次.但在外面嵌套一个方法,for循环里调用时, 可以拿到每一个content和projectcontent的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: