Я уверен, что есть более элегантные решения для этого, но это сработало.
Я заметил, что обработчик событий, который я использовал, получал индекс только после завершения цикла, поэтому я изменил маркер на «this» и добавил значение «content» к объекту маркера.
Определение массива содержимого перед маркером:
hikingBlurbs[i] = '<div id="infowindowContent"><h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1><div id="bodyContent"><p>.</p></div></div>';
Определение маркера с новой переменной содержимого:
// Set Post data
hikingPositions[i] = new google.maps.LatLng(<?php echo $geoLoc; ?>);
hikingMarkers[i] = new google.maps.Marker({
position: hikingPositions[i],
map: map,
icon: hikingIcon,
title:"<?php the_title(); ?>",
content: hikingBlurbs[i]
});
Теперь добавьте прослушиватель событий с некоторыми простыми изменениями:
// Assign data to map
for(marker in hikingMarkers)
{
google.maps.event.addListener(hikingMarkers[marker], 'mouseover', function() {
infowindow.setContent(this.content);
infowindow.open(map,this);
});
}
Дайте мне знать, если вы видите лучший способ сделать это или у вас есть какие-либо вопросы.
С наилучшими пожеланиями, GeneralChaos