Ajax调用已完成事件

时间:2009-03-06 13:52:13

标签: jquery ajax

我需要知道在元素完成渲染时是否有任何事件触发。我有一个div与id A说。现在我用ajax创建和渲染div,需要访问div中的元素。我该怎么做。试过$(“#A”)。init()。它不起作用。

4 个答案:

答案 0 :(得分:2)

如果要使用ajax调用更新div,可以在参数中添加回调函数。一旦ajax调用完成,将运行此回调函数:

$("#A").load(url, parameters, function () {
    // access elements inside div here
});

答案 1 :(得分:0)

http://docs.jquery.com/Ajax/load#urldatacallback

加载(网址,数据,回调)

为什么你不能在回调中开始使用div?

答案 2 :(得分:0)

显而易见的方法是将你的操作放在load / ajax / post / etc AJAX调用的回调中。如果你不能这样做(无论出于何种原因),也许这就是你所追求的ajaxComplete事件:

$("#msg").ajaxComplete(function(request, settings){
  $(this).append("<li>Request Complete.</li>");
});

当然你必须检测到它是完成的正确的AJAX调用,但这可能会有所帮助。

答案 3 :(得分:0)

我多次遇到过类似的问题。在我查看.on()函数的详细文档之前,我几乎放弃了。

通常使用.on()函数,我们附加如下的事件处理程序:

    $("#dataTable tbody tr").on("click",function() {
        alert($(this).text());
    });

但是通过委托事件方法,我们可以通过以下方式实现同​​样的目标:

    $("#dataTable tbody").on("click","tr",function() {
        alert($(this).text());
    });

这里,即使表行(即tr元素)通过ajax调用更新,上述代码仍将保持附加状态,并将继续执行预期的操作。

我想这可以解决你的问题。