我有一个用PHP编写的小应用程序。前端使用jQuery和AJAX。有一次,jQuery通过AJAX加载一些内容。问题是,它无法访问它刚刚加载的任何元素。谁知道为什么?
提前致谢!
答案 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.