1

我有一个 ajax 加载到主页的谷歌地图容器。我需要等待地图容器具有适当的大小(例如 100% 宽度)才能正确显示地图。

$(document).ready不起作用,尺寸不正确。

window.onload也不起作用,可能是因为容器已加载 ajax,即使在 ajax 函数中有事件侦听器也是如此。

jquery.load也不行。

这似乎是一个足够普遍的问题,但遗憾的是,当我浏览相关问题时,我找不到令人满意的答案。

[让我澄清一下我的特殊情况。我必须(因为我正在使用一个使用 ajax 处理页面转换的 web 框架,它不是 jquery mobile)ajax 将一个部分加载到文档中。在该部分中有我的地图容器,其中指定了宽度和高度。在启动谷歌地图脚本之前,我必须确保地图容器具有适当的尺寸。可悲的是,框架没有加载事件的回调:(]

4

2 回答 2

1

google.maps.event 对象公开了一种addListener()方法,以便能够将处理程序附加到地图中的某些事件。你可能想监听 `tilesloaded' 或 'resize' 事件。

google.maps.event.addListener(yourMapObject, 'tilesloaded', yourHandlerFunction);

以下是对所有事件的引用:http: //gmaps-samples-v3.googlecode.com/svn/trunk/map_events/map_events.html

于 2013-05-15T18:06:36.120 回答
0

窗口或文档事件(就绪、加载)不会等待异步 ajax 调用,因此您遇到的是预期的行为。

处理此类问题的常用方法是将回调或承诺绑定到您的 ajax 代码。要获得更具体的答案,我们需要查看您目前拥有的代码。

于 2013-05-15T18:06:07.173 回答