我有一个Ajax调用,它返回一段HTML代码,该代码应该替换页面上的旧HTML代码,并为它们提供新属性。在成功动态更改元素后,我想运行另一段JS代码,它读取并使用动态重新加载的元素的某些属性。但是,JS倾向于读取旧数据(就像它正在同步运行一样)。动态重载元素并在JQuery中读取它们的新属性
我找到的唯一解决方法是设置一个计时器,但计时器的延迟时间必须相对较高(300毫秒)以保证它始终正确完成。什么是正确的方法来做到这一点?
这是我现在所拥有的一个伪代码。它的工作原理,但300毫秒的延迟时间是可怕的。
$.post("ajax/test.html", function(newCode) {
$("#myDynamicDiv").html(newCode);
setTimeout(function(){
//Use the data that was just stored in #myDynamicDiv
},300);
});
我一直这样做,它完美的工作,也许它的ajax缓存搞乱你,我总是关掉它,有一个全球性的设置。显然要确保正在读取属性的JS在post函数内部和html插入之下。 – Seabizkit