jQuery无法访问通过AJAX加载的元素

时间:2010-06-03 23:35:52

标签: jquery ajax

我有一个用PHP编写的小应用程序。前端使用jQuery和AJAX。有一次,jQuery通过AJAX加载一些内容。问题是,它无法访问它刚刚加载的任何元素。谁知道为什么?

提前致谢!

2 个答案:

答案 0 :(得分:3)

@Ryan,在你的jQuery中你是试图将元素作为新元素访问,还是你期望事件已经绑定到元素?

我问,因为如果你说一个附加了点击事件的跨度,当你加载新的跨度时,新的跨度还没有点击事件。你需要绑定一个或使用我认为.live关键字总是有跨度,甚至后来创建的跨度,绑定到相同的事件。

如果您在之前,之后以及运行的jquery中有一小部分html示例,那将会有所帮助,因此我们可以为您查看和调试。

答案 1 :(得分:1)

Javascript通常是同步的,但默认情况下AJAX调用是异步的。

结果是,如果您尝试访问在AJAX调用之后直接返回并添加到DOM的数据,则可能是在收到AJAX响应之前该代码已运行。因此,似乎数据无法访问。

解决方案是在AJAX调用的success回调中进行操作。

$.ajax({
    url: "some/path/to/data",
    success: function( data ) {
        // Add returned data to DOM
        //   and manipulate data as needed
    }
});

// Can't access returned data here because this code
//    has likely executed before the response was returned.