Autor Zpráva
Hulak
Profil *
Zdravím, pro používání vícero infowindows a markerů zaráz jsem si našel níže uvedený skript.
Mám ale problém se zavíráním infowindows. Samozřejmě chci mít otevřené jen jedno zároveň, takže jsem to chtěl ošetřit jednoduchým skriptem, a ejhle, ono to nejde. Dole je kód
Řádky, které by měly problém ošetřovat jsou na samém konci. Mohl by někdo prosím pomoci?

var map ;
  function initialize() {
    var latlng = new google.maps.LatLng (50, 50);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
 
    var marker = add_marker(51, 51,"titulek","html for info box"); 
    marker.setMap(map);
     var marker = add_marker(50, 50,"titulek","html for info box"); 
    marker.setMap(map);
       
  }
   
  function add_marker(lat,lng,title,box_html) {
  
    var infowindow = new google.maps.InfoWindow({
        content: box_html
    });
 
    var marker = new google.maps.Marker({
          position: new google.maps.LatLng(lat,lng),
          map: map,
          title: title
    });
 
     
    google.maps.event.addListener(marker, 'click', function() {
     
      if(infowindow)      // ZDE JSOU TŘI ŘÁDKY, KTERÉ JSEM DO SKRIPTU PŘIDAL.
      {
      infowindow.close();
      }                     // ALE NEFUNGUJÍ, OKEN SE OTEVÍRÁ VÍCE!!
     
      infowindow.open(map,marker);
       
    });   
 
    return marker;
    
     
    
    
  }
Kajman
Profil
Definujte si proměnnou infowindow jako globální (dejte ji před funkci).
Hulak
Profil *
bohužel to nezabralo
Kajman
Profil
A jak jste to zkoušel? Bylo to takto nějak?

var infowindow=new google.maps.InfoWindow();
function add_marker(lat,lng,title,box_html) {
    
    var marker = new google.maps.Marker({
            position: new google.maps.LatLng(lat,lng),
            map: map,
            title: title
    });
    
    google.maps.event.addListener(marker, 'click', function() {
            
            if(infowindow)      // ZDE JSOU TŘI ŘÁDKY, KTERÉ JSEM DO SKRIPTU PŘIDAL.
            {
                infowindow.close();
            }                     // ALE NEFUNGUJÍ, OKEN SE OTEVÍRÁ VÍCE!!
            infowindow.setContent(box_html);
            infowindow.open(map,marker);
            
    });   
    
    return marker;
}
Hulak
Profil *
Wow, zapomněl jsem na setcontent řádek :/ Děkuji mnohokrát, ušetřil jste mi patrně spoustu času

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0