我正在从 HTML 数据运行谷歌地图,我真的需要能够点击行(div)来打开相关的标记。我希望在一个.each()
函数中添加一个 onclick,但我无法得到任何我试图工作的东西。
基本上,如果单击每一行可以打开相关的信息窗口,它将解决我所有的问题:)
帮助将不胜感激。
<script type="text/javascript" language="javascript">
var infowindow = new google.maps.InfoWindow();
var myOptions = {
zoom: 4,
center: new google.maps.LatLng(-40.900557, 174.885971),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true
};
var icon = "img/marker.png";
$(function() {
map = new google.maps.Map(document.getElementById("map"), myOptions);
// grab data attributes from html
$('.row').each(function( index ){
var rLat = $(this).data("coordinates").lat;
var rLong = $(this).data("coordinates").long;
var rTitle = $(this).find('.itemtitle a').html();
var rTel = $(this).find('.tel').html();
var rAdd = $(this).find('.add').html();
var contentString = '<div style="text-align:left"><h4 style="color:#0068a6;font-size:16px;margin:0px 0px 10px 0px;">' + rTitle + '</h4><strong>' + rTel + '</strong><br /><br />' + rAdd + '</div>';
var myLatLng = new google.maps.LatLng( rLat, rLong );
var otherMarkers = new google.maps.Marker({
position: myLatLng,
map: map,
icon: icon
});
// click actions
google.maps.event.addListener(otherMarkers, 'click', (function(otherMarkers, index) {
return function() {
infowindow.setContent( contentString );
infowindow.open( map, otherMarkers );
}
})(otherMarkers, index));
});
});
$(function() {
$(".leftblock .ctrlholder:nth-child(2)").addClass("last");
$(".leftblock .ctrlholder:nth-child(3)").addClass("last");
});
</script>
HTML
<div class="row" data-coordinates='{"lat" : -41.407493, "long" : 174.584122}'>
<h4 class="itemtitle"><a href="">Title</a></h4>
<p class="centralregion">Address</p>
<ul>
<li class="add">Post Address</li>
<li class="tel">tel</li>
</ul>
<span class="filter3"></span>
</div>
提前致谢。