Je travaille sur une page qui récupère du code avec un httpObject Javascript et l'utilise pour mettre à jour deux éléments sur la page - une carte google, et un DIV qui liste les choses sur lesquelles le marqueur pointe .Ajout dynamique d'écouteurs aux marqueurs Google Maps
Ce bit fonctionne très bien. Le problème est que lorsque je crée les marqueurs, je le fais par une boucle for, et j'ajoute des écouteurs au marqueur dans chaque boucle. Ensuite, quand je teste la page, je trouve que la même chose se produit pour chaque marqueur. Si vous passez la souris sur un marqueur, vous devez modifier la couleur de la bordure du bit correspondant de la DIV. Au lieu de cela, chaque marqueur change la bordure du dernier bit. Il semble que chaque fois que j'ajoute les écouteurs, j'écrase aussi les écouteurs des marqueurs précédemment ajoutés.
Je comprends que cela a à voir avec l'API Google Maps qui conserve l'identité d'un marqueur même lorsque vous en créez un nouveau en Javascript. Ce que je ne comprends pas comment la contourner - j'essayé de créer un tableau en dehors de la boucle, et le changement
var newMarker = new GMarker(newLatLng);
avec newMarker [count] = new GMarker (newLatLng);
mais cela ne fonctionne toujours pas.
Aidez-moi, StackOverflow. Tu es mon seul espoir. :)
Edit: Un peu plus de code
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 pour faire référence à Star Wars (le non-ordures un) – karim79
Pouvons-nous avoir un plus grand échantillon de code s'il vous plaît? Il est très difficile de dire quel est le problème. – karim79