我有一個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