我使用的是显示为对话框的Google地图,此控件会多次动态添加到页面中。现在,当我第一次打开地图时,它显示正常,我可以选择一个位置并使用它等。但是当我再次打开地图时,地图会部分显示在左上角。关于为什么会发生这种情况的任何帮助
function Initialize(id) {
if (!map) {
var Utrecht = new google.maps.LatLng(52.071065, 5.111389);
var myOptions =
{
zoom: 8,
center: Utrecht
, mapTypeId: google.maps.MapTypeId.ROADMAP
, draggableCursor: 'crosshair'
, streetViewControl: false
, panControl: false
};
var mapDiv = $('#ContentPlaceHolderBody_mapsCtrl' + id + '_map' + id);
map = new google.maps.Map(mapDiv[0], myOptions);
}
else
{
google.maps.event.clearListeners(map);
}
google.maps.event.addListener(map, 'click', function (event) {
position = event.latLng;
CallServer('loc:' + event.latLng.toUrlValue(), "");
});
}
编辑 - 这就是我用地图显示对话框的方式
$('#ContentPlaceHolderBody_mapsCtrl' + id + '_mapDiv' + id).dialog({
autoOpen: false,
dialogClass: "no-close",
position: {
my: "center",
at: "center",
of: window
},
width: 800,
height: 600,
open: Initialize(id)
});
$('#ContentPlaceHolderBody_mapsCtrl' + id + '_mapDiv' + id).dialog("open");
AutoResizeFrame();
答案 0 :(得分:0)
在关闭对话框之前调用google.maps.event.clearListeners(window, 'resize');
并在Initialize函数的else部分中工作,我现在正在全部显示地图。
else
{
google.maps.event.clearListeners(map);
google.maps.event.clearListeners(window, 'resize');
}