как сохранить ссылку на структуры данных внутри рекурсивных вызовов? - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть код JS с API Google Maps. Когда я нажимаю на маркер, я показываю больше маркеров. Когда я нажимаю на эти маркеры, я показываю больше маркеров ... и так далее Я соединяю все это полилиниями, и получающаяся структура выглядит как карта паука. Когда я нажимаю на любой маркер agian, я хочу скрыть созданные им маркеры и полилинии. Как создать и сохранить ссылку на эти полилинии и маркеры, которые формируются внутри рекурсивных вызовов EventListener для каждого родительского маркера, чтобы впоследствии я мог сделать setMap (null);

1 Ответ

0 голосов
/ 23 ноября 2011

Я не проверял это, но я полагаю, что вы можете добавить массив показанных маркеров внутри объекта 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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...