[英]Unable to pop up InfoWindow on clicking a marker google map
我究竟做錯了什么?? 我基本上是想在單擊標記時彈出一個非常簡單的信息窗口。.標記顯示得很好,但是標記單擊事件沒有響應。.我很確定InfoWindow代碼不在正確的地方..相應標記的地址由jquery分別輸入。
var geocoder;
var map;
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(39.88445,-86.11084);
var myOptions = {
zoom: 10,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
$('span.Address .ms-rtestate-field').each(function(index) {
var addy = $(this).text();
geocoder.geocode( { 'address': addy}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title:addy
});
}else {
alert("Geocode was not successful for the following reason: " + status);
}
});
// Creating an InfoWindow
var infowindow = new google.maps.InfoWindow({
content: 'Hello world'
});
// Adding a click event to the marker
google.maps.event.addListener(marker, 'click', function() {
return function(){
// Opening the InfoWindow
infowindow.open(map, marker);
}
});
});
您只需要一個信息窗口實例,然后在onclick事件期間使用setContent()
方法更改內容。 另外,您應將事件處理程序放入地址解析回調函數中,以確保在地址解析器完成操作后將其連接。
嘗試這個:
// Creating an InfoWindow
var infowindow = new google.maps.InfoWindow({});
$('span.Address .ms-rtestate-field').each(function(index) {
var addy = $(this).text();
geocoder.geocode( { 'address': addy}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title:addy
});
// Adding a click event to the marker
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent("Hello World!");
infowindow.open(map, this);
});
}else {
alert("Geocode was not successful for the following reason: "
+ status);
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.