Добавляете инфобокс в GoogleMaps?

Я пытаюсь добавить информационное поле к нескольким контактам на карте Google.

У меня раньше работало информационное окно — JSfiddle.

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

В следующем коде маркер добавляется на карту, и я пытаюсь добавить информационное поле. Функция addMarker находится в моей функции инициализации. И var infowindow находится под функцией инициализации.

function addMarker(feature) {
  var marker = new google.maps.Marker({
  position: feature.position,
  icon: feature.icon,
  map: map,
  size: 20,
  title: name,
  draggable: false, 
  //animation: google.maps.Animation.DROP
    });

   google.maps.event.addListener(marker, 'click', (function (marker) {return function () {
        var Infocontent = feature.desc;
        infowindow.setContent(Infocontent);
        infowindow.open(map, marker); //'mouseover'
      }
     })(marker));
    }




var infowindow = new google.maps.InfoWindow();

Может кто-нибудь, пожалуйста, скажите мне, где я ошибся?


person Bobby    schedule 12.01.2017    source источник
comment
Я только что попробовал вашу скрипку, в Chrome v.55.0.2883.95 на Mac работает.   -  person Bellu    schedule 12.01.2017
comment
Bellu — Какой JSfiddle вы пробовали? Я пытаюсь заставить работать второй JSfiddle JSfiddle   -  person Bobby    schedule 12.01.2017
comment
Прошу прощения, я искал первую. Вы правы, второй не работает.   -  person Bellu    schedule 12.01.2017
comment
если вы проверите консоль, вы получите сообщение об ошибке google is undefined при загрузке страницы и информационном окне undefined при нажатии на маркеры   -  person Sandeep Garg    schedule 12.01.2017


Ответы (1)


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

    google.maps.event.addListener(marker, 'click', (function (marker) {return function () {
   console.log('called');
        var Infocontent = feature.desc;
        infowindow = new google.maps.InfoWindow();
        infowindow.setContent(Infocontent);
        infowindow.open(map, marker); //'mouseover'
      }
     })(marker));

JSFiddle

person Sandeep Garg    schedule 12.01.2017
comment
Спасибо, с удовольствием! :) - person Sandeep Garg; 13.01.2017