Проблема с боковой панелью - изменение из списка HTML - PullRequest
1 голос
/ 27 ноября 2011

Привет, мне интересно, может ли кто-нибудь помочь мне, пожалуйста, так как я немного засолил это, и я не уверен, как решить эту проблему.

Я использую эта страница дает пользователю возможность выбора и отмены выбора маркеров на карте с помощью флажков.Затем они могут щелкнуть любой маркер, либо на карте, либо с помощью левой боковой панели, выбрать настройку радиуса в раскрывающемся меню на правой боковой панели и выполнить поиск POI в пределах данного радиуса.

ЧтоЯ пытаюсь сделать, это изменить боковую панель слева, чтобы соответствовать формату справа.

Я знаю, что фрагмент кода, который нужно изменить, таков:

function myclick(i) { 
            google.maps.event.trigger(gmarkers[i],"click"); 
            } 

            // == rebuilds the sidebar to match the markers currently displayed == 
            function makeSidebar() { 
            var html = ""; 
            for (var i=0; i<gmarkers.length; i++) { 
            if (gmarkers[i].getVisible()) { 
            html += '<a href="javascript:myclick(' + i + ')">' + gmarkers[i].myname + " - " + gmarkers[i].myfinds + " Finds made" + '<\/a><br>'; 
            } 
            } 
            document.getElementById("side_bar").innerHTML = html; 
            } 

Я попытался заменить его на код ниже, который взят из фрагмента сценария, который создаетбоковая панель с правой стороны.

function createSidebarEntry(marker2, sitedescription, distance) {
    var div = document.createElement('div');
        var html2 = '<b>' + sitedescription + '</b> (' + distance.toFixed(1) + '  miles) <br/>';
    div.innerHTML = html2;
    div.style.cursor = 'pointer';
    div.style.marginBottom = '5px'; 
    google.maps.event.addDomListener(div, 'click', function() {
    google.maps.event.trigger(marker2, 'click');
    });
    google.maps.event.addDomListener(div, 'mouseover', function() {
    div.style.backgroundColor = '#eee';
    });
    google.maps.event.addDomListener(div, 'mouseout', function() {
    div.style.backgroundColor = '#fff';
    });
    return div;
    }

Это - это то, что я сделал до сих пор.Я могу заставить маркеры появляться на карте, но не могу отобразить боковую панель с левой стороны для визуализации.

Я работаю над этим уже несколько дней, и мне кажется, чтоходить по кругу.Мне просто интересно, может ли кто-нибудь взглянуть на это, пожалуйста, и дайте мне знать, где я ошибся.

Большое спасибо и всего наилучшего

1 Ответ

2 голосов
/ 30 ноября 2011

Почему вы удивляетесь, что это не работает?Проблема в вашей функции makeSidebar(), которая, вероятно, должна выполнять работу (?), Но, как написано, она делает что-то странное ... Сначала вы создаете новый div, который вы нигде не помещаете в dom (вероятно, его следует разместить на боковой панели, но боковая панель не используется в этой функции!).Функция выполняет цикл for, но возвращается в первой итерации!Так что на самом деле это ничего не делает.

Идите и отлаживайте свой код.Используйте отладчик Firebug, чтобы отследить его!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...