好的,我会把我的代码:
$("#html_contenido").load("../../jsp/comun/contenedor_operativa.html" ,function(){
$("#html_publicidad_reservar").load("../../html/pub/publicidad_reserva/publicidad_reservar_fr.html", function(){
alert($("#html_publicidad_reservar").html());
});
});
alert($("#html_publicidad_reservar").html());
第一个提醒会显示publicidad_reservar_fr.html()
内部的内容,但第二个提醒未显示,因此在网页中#html_publicidad_reservar
有谁能告诉我这段代码有什么问题?
答案 0 :(得分:3)
在 A 同步 JAX 仍在运行时执行第二个警报。所以元素仍然是空的。如果您需要在加载代码后运行代码,请在第一个警报所在的内部回调中执行。
答案 1 :(得分:1)
第二个alert
在第一个load
之前运行因为Ajax
函数调用{{1}}然后运行其回调函数,所以方案是
您可以查看this
答案 2 :(得分:1)
.load
使用ajax,默认情况下是异步的,因此第一个alert
在html加载后显示它,而第二个警报在第一个警报之前运行,那时没有任何内容{{ 1}}但是。
时间表是这样的:
.load
并执行它。.load
触发,因为来自#1的alert
仍在发生.load
已加载。 contenedor_operativa.html
发生.load
发生后,源代码中的第一个警报发生这意味着,您应该将代码放在源代码中第一个.load
的位置,否则您将在未加载的元素上运行。
你可以做alert
但是这会杀死使用XHR /“Ajax”的全部目的