嘿,我正在鬼混谷歌地圖API,目前我正在努力實現一些我認爲會相當直接的事情。使用谷歌地圖API時的Javascript範圍問題
我的朋友想要在他的網站上有一個訪問者地圖的東西,訪問者可以在地圖上的任何點添加一個標記,每個標記都會有與之相關的信息。諸如名稱,日期,消息等的信息...
現在我正處於原型設計和學習階段,但我在將infowindow
與對象關聯時遇到問題。
var map;
var markers = []
function init(){
var latlng = new google.maps.LatLng(-44, 140);
var myOptions = {
zoom:8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.addListener(map, 'click', function(event){
markers.push(new marker(event.latLng));
});
}
function marker(location){
this.location = location;
this.mark = new google.maps.Marker({position:this.location, map:map});
this.info = new google.maps.InfoWindow({content:'hi'});
google.maps.event.addListener(this.mark, 'click', function(){
this.info.open(map, this.mark);
});
}
當我測試此代碼出了標誌放置很好,但是當我點擊,而不是顯示的信息窗口在他們身上,我得到這個錯誤在JS控制檯:
Uncaught TypeError: Cannot call method 'open' of undefined
當然這是範圍問題,但我不明白爲什麼應該如此。類似這樣的工作正常:
function test(a){
this.a = a
this.b = function(){
this.a+=1
}
}
非常感謝您的幫助!
感謝它的工作,但我注意到這個解決方案的一個信息框,當它出現是所有碎片...可能是由於它被稱爲以這種方式? http://jsfiddle.net/8xHw7/ – danem
剛試過它在你的鏈接,似乎它對我來說工作得很好:) – VNO
真的嗎?你看不到通過infowindow的這些線條?也許這是鉻... – danem