Javascript 谷歌地图API信息窗口都有相同的内容
我有一个旧的infowindows循环问题,最后一个循环的内容显示在所有infowindows中。是的,我知道在堆栈溢出上已经有一些关于这方面的问题,但它们似乎都不适合我 这是我的JavaScript:Javascript 谷歌地图API信息窗口都有相同的内容,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我有一个旧的infowindows循环问题,最后一个循环的内容显示在所有infowindows中。是的,我知道在堆栈溢出上已经有一些关于这方面的问题,但它们似乎都不适合我 这是我的JavaScript: var map; var geocoder; $(function () { var mapOptions = { zoom: startZoom, center: new google.maps.LatLng(startLat, startLng)
var map;
var geocoder;
$(function () {
var mapOptions = {
zoom: startZoom,
center: new google.maps.LatLng(startLat, startLng)
}
var marker, i;
$('#map-canvas').height($('#map-canvas').width() / 2);
var mapOptions = {
zoom: startZoom,
center: new google.maps.LatLng(startLat, startLng)
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
if ( ! isAddress && $('#country').val() > 0) {
geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': $('#country').find('option:selected').text()}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.fitBounds(results[0].geometry.viewport);
}
});
}
for (i = 0; i < distributors.length; i++) {
var $distributor = distributors[i];
var marker = new google.maps.Marker({
position: new google.maps.LatLng($distributor.latitude, $distributor.longitude),
map: map
});
var infowindow = new google.maps.InfoWindow();
var html = '<div class="container-fluid" style="width: 300px">\
<h1 class="row-fluid">\
'+($distributor.logo ? '<div class="span3"><img src="'+$distributor.logo+'" style="width: 100%"></div>' : '')+'\
<span class="span9">'+$distributor.name+'</span>\
</h1>\
<div class="row-fluid">\
<div class="span6">'+$distributor.address+'<br>'+$distributor.postcode+'</div>\
<div class="span6">'+($distributor.url ? '<a href="'+$distributor.url+'">'+$distributor.url+'</a>' : '')+'<br>'+$distributor.contactNumber+'</div>\
</div>\
</div>';
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(html);
infowindow.open(map, marker);
}
})(marker, i));
}
})
到目前为止,我已经尝试过了,但是上面提到的变量与我所拥有的不匹配,我无法使它们匹配,这就是不起作用
我也尝试过,但它没有得到不同的内容,而是删除了我所有的标记,只有一个除外
我做错了什么?有人能帮我整理一下吗?在创建infoWindow和html对象后尝试一下:
marker.html = html;
然后按如下方式构建事件侦听器:
google.maps.event.addListener(marker, 'click', function () {
infoWindow.setContent(this.html);
infoWindow.open(map, this);
});
这是一个关闭范围问题。请参阅类似的问题和答案:如果这确实是一个不同的问题,请提供一个演示该问题的示例。你的HTML/CSS是什么样子的?你能提供示例数据吗?@geocodezip我没有说这是另一个问题,我说在另一个答案中提供的方法要么对我不起作用,要么我无法考虑如何实现它们,因为我的代码目前是这样的。