gpt4 book ai didi

javascript - 从事件循环中保存值

转载 作者:行者123 更新时间:2023-11-30 14:13:22 25 4
gpt4 key购买 nike

如何从事件循环中保存值,

            for (var i = 0, len = features.length; i < len; i++) {
if (features[i].type == 'tower')

{
for (var j = 0; j < markers.length; j++) {
var lines = [];
lines.push(features[i].position);
lines.push(markers[j].position);

var connectionPath = new google.maps.Polyline({
path: lines,
geodesic: true,
strokeColor: '#12aab5',
strokeOpacity: 0.8,
strokeWeight: 3
});

connectionPaths.push(connectionPath);

connectionPath.setMap(map);
connectionPath.addListener('click', function() {
var elevator = new google.maps.ElevationService();
displayPathElevation(getPathVariableCode(connectionPath), elevator, map, features[i], markers[j]);
});
}
}
}

features[i], markers[j] 为空。

可能是因为在 i 和 j 已经不相关之后调用它们。

我希望在点击事件中使用特征[i] 和标记[j]。

我怎样才能执行这样的操作?

最佳答案

您也许可以编写一个高阶函数来生成回调函数。

function generateCB(connectionPath, feature, marker) {
return function() {
var elevator = new google.maps.ElevationService();
displayPathElevation(
getPathVariableCode(connectionPath),
elevator,
map,
feature,
marker
);
});
};

然后在循环中调用这个函数产生回调。

connectionPath.addListener('click', generateCB(connectionPath, features[i], markers[j]));

关于javascript - 从事件循环中保存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53988658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com