如何在递归调用中保持对数据结构的引用?

时间:2011-11-23 10:33:12

标签: javascript recursion google-maps-api-3

我有google maps api的JS代码。 当我点击标记时,我会显示更多标记。 当我点击这些标记时,我会显示更多标记...依此类推 我通过折线连接所有这些,结果结构看起来像蜘蛛图。 当我点击任何标记agian时,我想隐藏它创建的标记和折线。 如何为每个父标记创建并保留对eventlistener的递归调用内部形成的这些折线和标记的引用,以便稍后我可以执行setMap(null);

1 个答案:

答案 0 :(得分:0)

我还没有测试过,但我相信你可以在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
    }
}