我有一个谷歌地图容器,是ajax加载到主页面。我需要等待地图容器具有适当的大小(例如100%宽度)才能使地图正确显示。
$(document).ready
不起作用,大小不正确。
window.onload
也不起作用,可能是因为容器是ajax加载的,即使在ajax函数中有一个事件监听器。
jquery.load
也不起作用。
这似乎是一个足够普遍的问题,但遗憾的是,当我浏览相关问题时,我找不到满意的答案。
[让我澄清一下我的具体情况。我必须(因为我使用的是一个使用ajax处理页面转换的Web框架,并且它不是jquery mobile)ajax将一个部分加载到文档中。在该部分中有我的地图容器,其中指定了宽度和高度。在启动谷歌地图脚本之前,我必须确保地图容器具有适当的尺寸。遗憾的是,框架没有对load事件的回调:(]
答案 0 :(得分: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
答案 1 :(得分:0)
窗口或文档事件(ready,onload)不等待异步ajax调用,因此您遇到的是预期的行为。
处理此类问题的常用方法是将回调或承诺绑定到您的ajax代码。对于更具体的答案,我们需要查看到目前为止的代码。