2017-02-08 18 views
0

У меня есть несколько маркеров, расположенных на карте Google Maps и каждый маркер имеет InfoWindow со следующим содержанием:Могу ли я использовать getElementById() в инфо-окнах Maps в JavaScript?

  // Set the content of the infowindow of the marker. 
      var infoContent = 
       '<div id="iw-container" class="gm-style-iw">'+ 
       '<div class="iw-title">'+ 
        '<p>{{place.name}}</p>'+ 
       '</div>'+ 
       // For each photo associated with this place, add it. 
       '<div class="container-fluid">'+ 
        {% for photo in place.photo_set.all %} 
        '<div class="row">'+ 
         '<div class="col-md-4">'+ 
         '<hr>'+ 
         '<div class="">'+ 
         // Check whether the attributes have a value and display them. 
          {% if photo.info != "" and photo.info != None %} 
          '<p class="iw-info">{{ photo.info }}</p>'+ 
          {% endif %} 
          {% if photo.year != "" and photo.year != None %} 
          '<p class="iw-year">{{ photo.year }}</p>'+ 
          {% endif %} 
          {% if photo.source != "" and photo.source != None %} 
          '<p class="iw-source">Bron: {{ photo.source }}</p>'+ 
          {% endif %} 
         '</div>'+ 
         // Display the image with a link to the modal view. 
         '<div class="iw-image">'+ 
          '<img id="{{ photo.id }}" class="iw-image" src="../static/images/{{ photo.image }}">'+ 
         '</div>'+ 
         '</div>'+ 
        '</div>'+ 
        {% endfor %} 
       '</div>'+ 
       '</div>'; 

Я хочу, чтобы добавить вид модальный для каждого изображения в каждом InfoWindow, но я не могу сделать это:

var img = document.getElementById("{{ photo.id }}"); 

Это потому, что каждый раз, когда переменная img имеет значение Null.

Возможно ли получить доступ к содержимому infowindow с помощью getElementById()?

+0

Может ли это быть из-за того, что html-код для infowindow еще не добавлен при вызове getElementById()? – Vincent

ответ

0

Где вы звоните document.getElementById("{{ photo.id }}")?

Я смог сделать что-то подобное, вернув div с идентификатором в InfoWidow и вызвав document.getElementById() в onMarkerClick.

+0

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