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:


  1.  
  2. <script type="text/javascript">
  3. var barr = [ ];
  4. var lastI;
  5. var map;
  6. //var infoWindow = new google.maps.InfoWindow();
  7.  
  8.  
  9. function initialize() {
  10.  
  11.  
  12.  
  13. var myOptions = {
  14. center: new google.maps.LatLng(53.7655437, 20.4687073),
  15. zoom: 11,
  16. mapTypeId: google.maps.MapTypeId.ROADMAP,
  17. sensor: 'true'
  18. };
  19. var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
  20. var xlat = 53.741887;
  21. var xlng = 20.5142676;
  22. barr[0] = new Object;
  23.  
  24. var latlng = new google.maps.LatLng(xlat, xlng);
  25. var marker = new google.maps.Marker({
  26. position:latlng,
  27. visible: true,
  28. clickable: true,
  29. map: map
  30. });
  31. barr[0].marker = marker;
  32. barr[0].html = "<b>cos</b>";
  33. barr[0].infoWindow = new google.maps.InfoWindow({
  34. content: barr[0].html
  35. });
  36. barr[0].listener = makeClosure(0, barr[0].marker);
  37.  
  38.  
  39.  
  40.  
  41.  
  42. var xlat = 53.7635826;
  43. var xlng = 20.423147;
  44. barr[1] = new Object;
  45.  
  46. var mImage = 'http://maps.google.com/mapfiles/kml/pal5/icon51.png';
  47.  
  48. var latlng = new google.maps.LatLng(xlat, xlng);
  49. var marker = new google.maps.Marker({
  50. icon: mImage,
  51. position:latlng,
  52. visible: true,
  53. clickable: true,
  54. map: map
  55.  
  56. //icon: 'http://maps.google.com/mapfiles/kml/pal5/icon51s.png'
  57. });
  58. barr[1].marker = marker;
  59. barr[1].html = "cos";
  60.  
  61. barr[1].infoWindow = new google.maps.InfoWindow({
  62. content: barr[1].html
  63. });
  64.  
  65. barr[1].listener = makeClosure(1, barr[1].marker);
  66.  
  67.  
  68. var xlat = 53.7892004;
  69. var xlng = 20.4927232;
  70. barr[2] = new Object;
  71.  
  72. var mImage = 'http://maps.google.com/mapfiles/kml/pal5/icon51.png';
  73.  
  74. var latlng = new google.maps.LatLng(xlat, xlng);
  75. var marker = new google.maps.Marker({
  76. icon: mImage,
  77. position:latlng,
  78. visible: true,
  79. clickable: true,
  80. map: map
  81.  
  82. //icon: 'http://maps.google.com/mapfiles/kml/pal5/icon51s.png'
  83. });
  84. barr[2].marker = marker;
  85. barr[2].html = "cos";
  86.  
  87. barr[2].infoWindow = new google.maps.InfoWindow({
  88. content: barr[2].html
  89. });
  90.  
  91. barr[2].listener = makeClosure(2, barr[2].marker);
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98. }
  99.  
  100. function makeClosure(i, marker)
  101. {
  102. var listener = google.maps.event.addListener(marker, 'click', function() {
  103.  
  104. openInfoWindow(i) ; // <-- this is the key to making it work
  105. });
  106. return listener ;
  107. }
  108.  
  109. // Open the infoWindow - called from the closure...
  110.  
  111. function openInfoWindow(i)
  112. {
  113.  
  114. if ( typeof(lastI) == 'number' && typeof(barr[lastI].infoWindow) == 'object' )
  115. {
  116. barr[lastI].infoWindow.close() ;
  117. }
  118. lastI = i ;
  119. // alert(i);
  120. barr[i].infoWindow.open(map,barr[i].marker);
  121. }
  122. </script>
  123.  
  124.