我想了解 jquery 如何处理上下文。我有这个代码:
var formHtml;
jQuery.get("form2.htm", function (data) {
formHtml = data;
});
alert(formHtml);
它的作用是从form2.html
页面获取数据,我将 formHtml 变量设置为该数据,以便我可以在其他地方使用它,但是当我警告我未定义时。有什么我想念的吗?
ajax
是异步的,因此在调用完成之前执行警报
alert(formHtml);
将在之前执行formHtml = data;
正如利什所说->Well for one, the get will take a moment to complete.
您可以使用.ajaxComplete()
:
$(document).ajaxComplete(function(){
alert(formHtml);
});
试试这个 :
var formHtml;
jQuery.get("form2.htm", function (data) {
formHtml = data;
alert(formHtml);
});
如前所述,jQuery.get
是一种异步方法。回调函数将在收到响应后执行。
jQuery.get("form2.htm", function (data) {
formHtml = data;
alert('response received!');
});
alert('request send!');
您将看到“请求发送!”,然后是“收到响应!”。
form2.htm
是异步加载的。您alert
在调用您传递给的回调之前运行,get
因此formHtml
尚未获得值。
jQuery.get()
是异步操作,您的匿名将在完成 ajax 调用后调用,但在 ajax 请求期间,您的警报显示数据,因此显示未定义