知道何时在div中完成加载动态添加数据

时间:2015-04-28 20:22:15

标签: jquery html ajax dom

我正在使用

将包含图像的ajax加载到我页面上的div中
$('#container').html(data)

假设变量数据是ajax返回的数据, 我如何知道新数据(和图像)何时在容器中完成加载?

1 个答案:

答案 0 :(得分:2)

您要找的是.promise().done()。这些在您希望等待在集合或jQuery对象上运行的任何和所有动画完成的情况下也很有用,而不会在单个回调中传递您的代码。

如果您要查看的是在加载的内容上调用代码或处理程序,那么您应该查看.load()事件和委派的事件处理程序。你可能不需要两者,但无论如何你应该阅读,了解和理解它们。您可以在.on()方法的文档中阅读有关委派事件处理程序的信息。


委派事件处理程序的快速摘要

委托事件处理程序是您附加到要监听的内容的祖先元素(可能已加载或未加载)的处理程序。

以下是委托click处理程序绑定到body元素并设置为在类click的后代元素上侦听foo事件的示例。这意味着此处理程序将侦听具有类foo的任何元素(即使是稍后添加但尚未加载到DOM中的元素),它们是body元素的后代。

$("body").on("click", ".foo", function() {
    bar();
});

下面的内容完全相同,只是它只将处理程序绑定到绑定处理程序时存在的那些.foo元素。处理程序不会监听稍后添加的任何.foo元素。

$(".foo").on("click", function () { 
   bar();
});

通过将一个selector参数传递给.on()方法,你可以告诉jQuery而不是监听绑定元素上发生的指定事件,它应该监听传播(或冒泡)事件,源自与给定选择器匹配的后代以到达绑定元素,并且应该使用触发事件的后代作为处理程序的上下文对象(this)来调用处理程序。


jQuery API的相关链接