等待ajax元素完成加载的确定方法是什么?

时间:2013-05-15 17:53:55

标签: jquery ajax

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

$(document).ready不起作用,大小不正确。

window.onload也不起作用,可能是因为容器是ajax加载的,即使在ajax函数中有一个事件监听器。

jquery.load也不起作用。

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

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

2 个答案:

答案 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代码。对于更具体的答案,我们需要查看到目前为止的代码。