J'ai un appel Ajax qui retourne un morceau de code html qui est censé remplacer le vieux code html sur la page, en leur donnant de nouveaux attributs. Une fois que j'ai réussi à modifier dynamiquement mes éléments, je souhaite exécuter un autre morceau de code JS qui lit et utilise certains des attributs des éléments rechargés dynamiquement. Cependant, JS préfère lire les anciennes données (comme si elles s'exécutaient de manière synchrone).Recharger dynamiquement les éléments et lire leurs nouveaux attributs dans JQuery
La seule solution de contournement que j'ai trouvée est de régler une minuterie, mais le temps de retard de la minuterie doit être relativement élevé (300 ms) pour garantir que tout est toujours fait correctement. Quel est le bon moyen de le faire?
Voici un pseudo-code pour ce que j'ai en ce moment. Cela fonctionne mais le délai de 300ms est terrible.
$.post("ajax/test.html", function(newCode) {
$("#myDynamicDiv").html(newCode);
setTimeout(function(){
//Use the data that was just stored in #myDynamicDiv
},300);
});
Je le fais tout le temps, et il fonctionne parfaitement, peut-être son cache ajax vous embêter, je tourne toujours au large, il y a un paramètre global pour elle. Évidemment, assurez-vous que votre JS qui lit les attributs est à l'intérieur de la fonction post et en dessous de l'insertion html. – Seabizkit