Javascript Google Map V3在隐藏分区中偏离中心
我在div中有一个谷歌地图,默认情况下需要隐藏它Javascript Google Map V3在隐藏分区中偏离中心,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我在div中有一个谷歌地图,默认情况下需要隐藏它 <div id="newpost" style="display:none;"> 取消隐藏贴图时,贴图的一部分不会渲染。我猜我必须在提交时重新加载地图。有人知道怎么做吗 谢谢 这是我的密码: <script type="text/javascript"> jQuery(document).ready(function(){ jQuery('#newcatchhide').live('click', fu
<div id="newpost" style="display:none;">
取消隐藏贴图时,贴图的一部分不会渲染。我猜我必须在提交时重新加载地图。有人知道怎么做吗
谢谢
这是我的密码:
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#newcatchhide').live('click', function(event) {
jQuery('#newpost').toggle('show');
});
});
jQuery(文档).ready(函数(){
jQuery('#newcatchhide').live('click',函数(事件){
jQuery('#newpost')。切换('show');
});
});
这是body标签上的map oad函数:
<body onload="load()" onunload="GUnload()">
以下是切换的div和包含映射的div:
<div id="newpost" style="display:none;">
<div id="map" style="width: 500px; height: 300px"></div>
像这样的东西其思想是在显示DIV之后初始化映射 编辑:
根据您的更新确定替换:
jQuery('#newcatchhide').live('click', function(event) {
jQuery('#newpost').toggle('show');
});
与:
然后从body标签中删除
onload=“load()”
我最近也遇到了同样的问题,并且发现解决方法非常简单:
google.maps.event.trigger(map, 'resize');
其中map
是您的谷歌地图实例
您可以在使div可见后调用此函数
如果对映射使用jQuery,则可以使用
map = $('#map_canvas').gmap().map;
更好:
gmap.redraw = function() {
gmOnLoad = true;
if(gmOnLoad) {
google.maps.event.trigger(gmap, "resize");
gmap.setCenter(gmlatlng);
gmOnLoad = false;
}
}
在show click事件中:
$("#goo").click(function() {
if ($("#map_canvas").css("display") == "none") {
$("#YMapsID").toggle();
$("#map_canvas").toggle();
if (gmap != undefined) {
gmap.redraw();
}
}
});
是的,看起来不错。但是我很困惑-映射是在body标记上初始化的:我会关闭body标记并在div内再次打开它吗?你说在div内打开body标记是什么意思?头牌后面应该只有一个身体标签,里面有你所有的div?您使用什么JS位来显示DIV?在那里调用该函数。我在div上使用jQuery切换。您是说调用onload=“load()”?jQuery(document).ready(函数(){jQuery('newcatchhide').live('click',函数(event){jQuery('newpost').toggle('show');});我猜你的意思是
jQuery('#newpost')。toggle('slow')代码>,是否还要在稍后阶段隐藏DIV?这就是您使用切换的原因吗?您可以做的是设置一个全局变量标志var onLoad=true然后是jQuery('#newpost').toggle('slow',function(){if(onLoad){load();onLoad=false;}})
并从body标记中删除onload=“load()”
,这样初始化将只调用oncebriliant,谢谢。其他建议对我都不管用。这一个很有用!你好,Jani,我可以在切换按钮上调用此选项吗?谢谢当你把地图显示出来后,你会称之为“地图”,这是正确的方法。不过,之后可能需要将地图居中。。
$("#goo").click(function() {
if ($("#map_canvas").css("display") == "none") {
$("#YMapsID").toggle();
$("#map_canvas").toggle();
if (gmap != undefined) {
gmap.redraw();
}
}
});