2013-05-08 26 views
2

我想在谷歌地圖中使用infowindow。地圖正在實施,但每當我點擊任何標記時,在控制檯中總會出現錯誤「TypeError:b.P不是函數」 以下是我正在使用的代碼。谷歌地圖TypeError:b.P不是函數錯誤

var mapOptions_map2; 
function initialize_map2() { 

    var locations_map2 = eval(document.getElementById('locations').value); 
    mapOptions_map2 = new google.maps.Map(document.getElementById('fullmap_view'), { 
     zoom: 4, 
     center: mapcenter, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
    }); 
    var contentString = 'some content'; 
    var infowindow_map2 = new google.maps.InfoWindow({ 
     maxWidth: 200 
    }); 

    var marker_map2, i; 
    for (i = 0; i < locations_map2.length; i++) { 
     marker_map2 = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations_map2[i][1], locations_map2[i][2]), 
     map: mapOptions_map2 
     }); 
     google.maps.event.addListener(marker_map2, 'click', (function(marker_map2, i) { 
     return function() { 
      infowindow_map2.setContent(contentString); 
      infowindow_map2.open(map, marker_map2); 
     } 
     })(marker_map2, i)); 
     } 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
+0

這後面的逗號這裏不會幫助(並可能會引發錯誤在IE):'的mapTypeId:谷歌。 maps.MapTypeId.ROADMAP,' – duncan 2013-05-08 10:11:40

+0

刪除該逗號後,我仍然通過單擊任何標記而出現「TypeError:ge未定義」錯誤。有一點很重要,這裏通過評論(刪除)返回函數(){以及此函數的關閉框。一個infowindow總是默認顯示。但關閉後,然後點擊任何標記再次出現相同的錯誤 – Farhan 2013-05-08 10:45:05

回答

5

代碼中沒有「map」變量。你想mapOptions_map2代替:

 infowindow_map2.open(map, marker_map2); 

應該是:

 infowindow_map2.open(mapOptions_map2, marker_map2); 

example

+0

這是一個非常大的努力,通過根據您的方向進行更改。有一個錯誤在控制檯「TypeError:bP不是一個函數(92超出範圍47)」有時有94而不是92.我很驚訝,在你的例子中我的代碼工作正常,那爲什麼不是在我的工作側? – Farhan 2013-05-09 09:09:24

+0

可能因爲你的代碼與我的例子不一樣。您沒有發佈完整的代碼,可能是您發佈內容之外的錯誤。 – geocodezip 2013-05-09 12:40:50

+0

其工作現在非常感謝 – Farhan 2013-05-09 13:01:03