2016-09-12 2 views
-1

Dies ist Javascript ich alle Marker zu machen verwenden, um und stellen Zuhörer klickenGoogle Maps öffnen Infofenster auf den Link klicken außerhalb der Karte

var infowindow = new google.maps.InfoWindow(); 
    var markernovi, i; 

    for (i = 0; i < lokacije.length; i++) { 
     var ll = lokacije[i][2]; 
     var latlng = ll.split(','); 
     markernovi = new google.maps.Marker({ 
      position: new google.maps.LatLng(parseFloat(latlng[0]), parseFloat(latlng[1])), 
      map: mapObject, 
      icon: 'img/pins/' + key + '.png', 
     }); 

     google.maps.event.addListener(markernovi, 'click', (function (markernovi, i) { 
      return function() { 
       infowindow.setContent(lokacije[i][0]); 
       infowindow.open(mapObject, markernovi); 
      } 
     })(markernovi, i)); 



    markers.push(markernovi); 
    } 
} 


google.maps.event.addDomListener(window, 'load' , initialize); 

function myClick(id){ 
    google.maps.event.trigger(markers[id], 'click'); 
} 

Und ich habe diese alle Standorte auf Seite zur Liste:

<?php 
       foreach($lokacijebuy1 as $sve) { 
        ?> 
        <div class="col-lg-6 col-md-12 col-sm-6"> 
         <div class="img_wrapper"> 
          <div class="img_container"> 
           <a href="#" onclick="myClick(0);" > 
            <img src="http://evidentiraj.me/gkcard/slikemjesta/<?php echo $sve['photo']; ?>" width="800" height="533" class="img-responsive" alt=""> 
            <div class="short_info"> 
             <h3><?php echo $sve['ime2']; ?></h3> 
             <em><?php echo $sve['adresa']; ?></em> 
             <p> 
              <?php echo $sve['opis2']; ?> 
             </p> 
            </div> 
           </a> 
          </div> 
         </div><!-- End img_wrapper --> 
        </div><!-- End col-md-6 --> 
       <?php } 
      ?> 

Und egal welche ich klicke nur Infofenster Ich öffne ist das erste in Array.

Sie sehen Seite leben hier: http://evidentiraj.me/gorskikotarcard/locationsbuy.php

Und ich fand, dass das einzige, was ich ändern müssen andere Markierung angezeigt ist Nummer innerhalb myClick

<a href="#" onclick="myClick(1);" > 

ANTWORT: einzige, was ich tat, war hinzufügen Zähler in meinem <a href Tag Jetzt sieht es wie folgt aus:

<?php 
      $counter = 0; 
       foreach($lokacijebuy1 as $sve) { 

        ?> 
        <div class="col-lg-6 col-md-12 col-sm-6"> 
         <div class="img_wrapper"> 
          <div class="img_container"> 
           <a href="#" onclick="myClick(<?php echo $counter; ?>);" > 
            <img src="http://evidentiraj.me/gkcard/slikemjesta/<?php echo $sve['photo']; ?>" width="800" height="533" class="img-responsive" alt=""> 
            <div class="short_info"> 
             <h3><?php echo $sve['ime2']; ?></h3> 
             <em><?php echo $sve['adresa']; ?></em> 
             <p> 
              <?php echo $sve['opis2']; ?> 
             </p> 
            </div> 
           </a> 
          </div> 
         </div><!-- End img_wrapper --> 
        </div><!-- End col-md-6 --> 
       <?php 
        $counter++; 
       } 
      ?> 

Antwort

1

I Das liegt daran, dass Sie das Element a mit der Funktion myClick mit dem Eingabeargument 0 rendern, und Sie verwenden dieses Argument als Index im Marker-Array innerhalb Ihrer Funktion, das immer noch der erste Marker im Array ist. Sie müssen die Art und Weise ändern Sie das a Element rendern Ergebnisse wie folgt zu erhalten:

<a href="#" onclick="myClick(0);"></a> 
<a href="#" onclick="myClick(1);"></a> 
<a href="#" onclick="myClick(2);"></a> 
+0

Ich weiß, aber ich foreach-Schleife haben, in dem ich so etwas wie ID aus der Datenbank cant do -1, da Benutzer einige Standorte in Backend deaktivieren können und es würde nicht funktionieren. –

+1

Können Sie in Ihrer '' foreach'' Schleife in Ihrem '' php'' Code einen Zähler setzen und diesen Zähler beim Rendern des '' a'' Elements verwenden? – xxxmatko

+0

das funktioniert..wirde meine Frage jetzt mit Antwort bearbeiten –

Verwandte Themen