1
데이터베이스에서 데이터를 가져 오는 Google지도가 있습니다. 모든 것이 정상적으로 작동하지만 맵의 특정 지점 위로 마우스를 가져 가면 팝업되는 정보창을 제외하고는 (이 지점은 데이터베이스에서 가져 오는 집합의 일부이므로 모든 지점에 숫자가있을 수 있습니다. 주어진 단계).처음 Google지도 정보 창이 표시되지 않습니다.
내 코드는 다음과 같습니다
이function getwindow(id) {
if(infowindows[id] == null || infowindows[id] == '') {
$.ajax({
url: "view/"+id,
type: "post",
async: true,
beforeSend: function() {
},
success: function(data) {
data = JSON.parse(data);
if(data.success) {
infowindows[id] = '<b>Info For: </b>' + data.Clinic.official_clinic_name + '<br/>' +
'{{image}}<br/>' +
'Tel: ' + data.Clinic.telephone;
} else {
alert('error');
}
}
});
}
}
var infowindow = new google.maps.InfoWindow({
content: ''
});
<?php foreach($jsdata as $data) : ?>
infowindows[<?php echo $data['id'];?>] = '';
google.maps.event.addListener(marker_<?php echo $data['id'];?>, 'mouseover', function() {
getwindow(<?php echo $data['id'];?>);
infowindow.setContent(infowindows[<?php echo $data['id'];?>]);
infowindow.open(map,marker_<?php echo $data['id']?>);
});
google.maps.event.addListener(marker_<?php echo $data['id'];?>, 'mouseout', function() {
infowindow.close();
});
<?php endforeach; ?>
나는 데 문제가 팝업 정보창이 처음을 표시하지 않습니다. 내가 두 번 쳐다 보면 완벽하게 작동합니다. 처음으로 어떻게 보이게 만들 수 있습니까?
첫 번째 시도에서 infoWindow의 콘텐츠를 사용할 수 있습니까? 이벤트 핸들러의 정의를 코드의'성공 :'부분으로 옮기면 어떨까요? –
그 트릭을 했어. 그냥 답변으로 추가하고 upvote거야. 내가 한 일은 마커를 다음과 같이 변수로 전달합니다 :'getwindow ( php echo $ data [ 'id'];?>, marker _ php echo $ data [ 'id'];?>);' – Albert