Witam, mamy taki kod jak poniżej, który powinien wyświetlić po naciśnięciu na znacznik chmurkę z opisem, który deklaruję.
Mapa i znaczniki wyświetlają się poprawnie.
Używam w innym miejscu tego samego kodu i działa wszystko bez problemu. Porównałem wszystko i nie mam pojęcia czemu to nie działa. Firebug nie zgłasza żadnych błędów:
<script type="text/javascript"> var barr = [ ];
var lastI;
var map;
//var infoWindow = new google.maps.InfoWindow();
function initialize() {
var myOptions = {
center: new google.maps.LatLng(53.7655437, 20.4687073),
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP,
sensor: 'true'
};
var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
var xlat = 53.741887;
var xlng = 20.5142676;
barr[0] = new Object;
var latlng = new google.maps.LatLng(xlat, xlng);
var marker = new google.maps.Marker({
position:latlng,
visible: true,
clickable: true,
map: map
});
barr[0].marker = marker;
barr[0].html = "
<b>cos
</b>";
barr[0].infoWindow = new google.maps.InfoWindow({
content: barr[0].html
});
barr[0].listener = makeClosure(0, barr[0].marker);
var xlat = 53.7635826;
var xlng = 20.423147;
barr[1] = new Object;
var mImage = 'http://maps.google.com/mapfiles/kml/pal5/icon51.png';
var latlng = new google.maps.LatLng(xlat, xlng);
var marker = new google.maps.Marker({
icon: mImage,
position:latlng,
visible: true,
clickable: true,
map: map
//icon: 'http://maps.google.com/mapfiles/kml/pal5/icon51s.png'
});
barr[1].marker = marker;
barr[1].html = "cos";
barr[1].infoWindow = new google.maps.InfoWindow({
content: barr[1].html
});
barr[1].listener = makeClosure(1, barr[1].marker);
var xlat = 53.7892004;
var xlng = 20.4927232;
barr[2] = new Object;
var mImage = 'http://maps.google.com/mapfiles/kml/pal5/icon51.png';
var latlng = new google.maps.LatLng(xlat, xlng);
var marker = new google.maps.Marker({
icon: mImage,
position:latlng,
visible: true,
clickable: true,
map: map
//icon: 'http://maps.google.com/mapfiles/kml/pal5/icon51s.png'
});
barr[2].marker = marker;
barr[2].html = "cos";
barr[2].infoWindow = new google.maps.InfoWindow({
content: barr[2].html
});
barr[2].listener = makeClosure(2, barr[2].marker);
}
function makeClosure(i, marker)
{
var listener = google.maps.event.addListener(marker, 'click', function() {
openInfoWindow(i) ; // <-- this is the key to making it work
});
return listener ;
}
// Open the infoWindow - called from the closure...
function openInfoWindow(i)
{
if ( typeof(lastI) == 'number' && typeof(barr[lastI].infoWindow) == 'object' )
{
barr[lastI].infoWindow.close() ;
}
lastI = i ;
// alert(i);
barr[i].infoWindow.open(map,barr[i].marker);
}