Sto lavorando a una pagina che recupera il codice con un httpObject Javascript e lo utilizza per aggiornare due elementi sulla pagina: una mappa di google e un DIV che elenca le cose a cui punta il marcatore .Aggiunta dinamica di ascoltatori a Google Maps Markers
Questo bit funziona correttamente. Il problema è che quando creo i marker, lo faccio attraverso un ciclo for, e aggiungo listener al marker in ogni ciclo. Poi, quando provo la pagina, trovo la stessa cosa che succede per ogni marcatore.
Il passaggio del mouse su un marker deve modificare il colore del bordo del bit corrispondente del DIV. Invece, ogni marcatore cambia il bordo dell'ultimo bit. Sembra che ogni volta che aggiungo gli ascoltatori sovrascrivo anche gli ascoltatori degli indicatori aggiunti in precedenza.
Ho capito che questo ha a che fare con l'API di Google Maps mantenendo l'identità di un marcatore anche quando ne crei uno nuovo in Javascript. Quello che non capisco come ottenere intorno ad esso - Ho cercato di creare una matrice di fuori del ciclo, e cambiando
var newMarker = new GMarker(newLatLng);
con newMarker [count] = new GMarker (newLatLng);
ma ancora non funziona.
Help Me, StackOverflow. Sei la mia unica speranza. :)
Edit: Un po 'più di codice
for (count=0;count<=LatArray.length;count++)
{
thisLat = LatArray[count];
thisLong = LongArray[count];
thisHTML = HTMLArray[count];
newLatLng = new GLatLng(thisLat, thisLong, true);
if (mapBounds.containsLatLng(newLatLng))
{
//alert(count);
var dinnerNumber = "dinner_"+count;
newMarkers[count] = new GMarker(newLatLng);
map.addOverlay(newMarkers[count]);
GEvent.addListener(newMarkers[count],'mouseover',function(){document.getElementById(dinnerNumber).style.borderColor = '#000000';
});
}// for
+1 per fare riferimento a Star Wars (il non-rifiuti uno) – karim79
Possiamo avere un campione di codice più grande per favore? È molto difficile dire qual è il problema. – karim79