【发布时间】:2014-04-06 08:32:31
【问题描述】:
我正在使用带有 InfoBox 的 Google Maps API v3 来设置单击标记时出现的弹出窗口的样式。
这是我的信息框设置:
// New InfoWindow
infobox = new InfoBox({
content: document.getElementById('marker-info'),
disableAutoPan: false,
pixelOffset: new google.maps.Size(-140, 0),
zIndex: null,
closeBoxMargin: '10px 9px 12px 0',
closeBoxURL: siteURL + 'wp-content/themes/bmk-wp-build/img/close-google-popup.png',
infoBoxClearance: new google.maps.Size(1, 1)
});
我有一个带有许多标记的谷歌地图,它是通过 Wordpress 使用 ACF 和 Locations 字段设置的。一切正常,但唯一的问题是InfoBox 为每个标记输出相同的内容。很明显,这与这一行有关:
content: document.getElementById('marker-info'),
这是我的 PHP/HTML:
<?php while ( $company_query->have_posts() ) : $company_query->the_post(); ?>
<?php $location = get_field('location'); if ( !empty($location) ) : ?>
<div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>" id="<?php echo get_the_ID(); ?>">
<div id="marker-info" class="marker-info <?php echo get_the_ID(); ?>">
<?php echo wp_get_attachment_image(get_field('logo'), 'full'); ?>
</div>
</div>
<?php endif; ?>
<?php endwhile; ?>
显然,在 while 循环中设置 id 是一个坏主意,而且很愚蠢,所以我显然可以摆脱它,但我将如何改变:
content: document.getElementById('marker-info'),
获取每个标记的每个 InfoBox 的每个 .marker-info?
【问题讨论】:
-
能贴出完整的JS代码吗?我认为关键部分是如何将点击事件处理程序附加到标记并打开信息框,但最好有完整的代码。
标签: javascript php wordpress google-maps google-maps-api-3