【问题标题】:how to keep reference to data structures inside recursive calls?如何在递归调用中保持对数据结构的引用?
【发布时间】:2011-11-23 10:33:12
【问题描述】:
我有带有 google maps api 的 JS 代码。
当我点击一个标记时,我会显示更多标记。
当我单击这些标记时,我会显示更多标记......等等
我通过折线连接所有这些,生成的结构看起来像蜘蛛图。
当我单击任何标记 agian 时,我想隐藏它创建的标记和折线。
如何创建并保留对这些折线和标记的引用,这些折线和标记是在每个父标记的事件监听器的递归调用中形成的,以便以后可以执行 setMap(null);
【问题讨论】:
标签:
javascript
recursion
google-maps-api-3
【解决方案1】:
我尚未对其进行测试,但我相信您可以在 Marker 对象中添加一组显示的标记。它看起来像这样:
var originalMarkers = new Array(); //load markers you show at the beginning to some array
function onMarkerClick(event) {
if (marker.childMarkers){
for (child in marker.childMarkers) {
child.setMap(null);
//and so on, e.g remove polylines
marker.childMarkers = null;
}
}
else {
marker.childMarkers = new Array();
//load markers you show after click here
}
}