我正在使用JQuery的网站上显示从AJAX调用返回的HTML。 单击按钮后,将调用以下JS函数:
function example(...) {
get_ajax_and_display(...);
show_hidden_div(...);
}
第一个函数get_ajax_and_display()
进行ajax调用,并且成功时,调用$("#ex_div").html(ajax_response)
将innerHTML
ex_div
设置为从ajax调用返回的任何内容。特别是,返回的html包含<span id='ex_span' style="display: none">
。
第二个函数show_hidden_div()
调用$("#ex_span").show()
以显示该范围。
但是,第二个函数调用失败,因为$("#ex_span")
似乎未定义,即使第一个函数已经创建它。
在.html(ajax_response)
函数返回之前,example(...)
是否实际上没有设置?
我在代码的其他部分分别调用了2个内部函数,它们可以自行运行。
为什么我不能这样称呼他们?
答案 0 :(得分:2)
在ajax调用的show_hidden_div();
函数中触发success
,ajax是异步的,因此show_hidden_div()
首先触发,然后当ajax完成时,div被附加到页面
答案 1 :(得分:1)
将async添加到您的ajax调用,如下所示
url: "url.php?" + params,
async: false,
dataType: "html",