为什么我不能从jQueryAjax中得到结果
我的函数非常简单,基于我的发现。然而,我似乎无法使它工作,有什么问题吗为什么我不能从jQueryAjax中得到结果,ajax,jquery,Ajax,Jquery,我的函数非常简单,基于我的发现。然而,我似乎无法使它工作,有什么问题吗 function ajax(url) { var result; $.ajax({ url: url, success: function(data) { result = data; //$('#test').html(data); } }); return result;
function ajax(url) {
var result;
$.ajax({
url: url,
success: function(data) {
result = data;
//$('#test').html(data);
}
});
return result;
}
函数获取数据,因为如果我取消注释注释代码并调用它,那么数据将显示在#test元素中。然而,如果我写
var test = ajax('my-url.php');
$('#test').html(test);
那就不行了。我的猜测是,出于某种原因,“data”中的数据没有存储在变量“result”中。但我不知道为什么,也不知道如何解决它。非常感谢您的帮助。如果您将
$.ajax
调用修改为不异步执行,它将按照您的预期工作:
function ajax(url) {
var result;
$.ajax({
async: false,
url: url,
success: function(data) {
result = data;
//$('#test').html(data);
}
});
return result;
}
$.ajax
函数立即返回,不会等待ajax调用返回。如果将$.ajax
调用修改为不异步执行,它将按预期工作:
function ajax(url) {
var result;
$.ajax({
async: false,
url: url,
success: function(data) {
result = data;
//$('#test').html(data);
}
});
return result;
}
$.ajax
函数立即返回,不等待ajax调用返回。直到ajax调用完成,ajax
函数已经返回,才会更改结果
变量。这就是回调的整个点,即在事件完成时安排要执行的任务的能力
Javascript(在浏览器中)本质上是异步的
或者,您可以将async:false
传递给您的$.ajax
调用,它将等待调用完成,但恢复到原始样式更有意义
编辑:看起来您正在做的事情可以用完成。在AJAX调用完成之前,
结果
变量不会被更改,此时,AJAX
函数已经返回。这就是回调的整个点,即在事件完成时安排要执行的任务的能力
Javascript(在浏览器中)本质上是异步的
或者,您可以将async:false
传递给您的$.ajax
调用,它将等待调用完成,但恢复到原始样式更有意义
编辑:看起来你正在做的事情可以用它来完成。谢谢,我选择了另一个答案,因为经过一些阅读,我决定使用$.load()谢谢,我选择了另一个答案,因为经过一些阅读,我决定使用$.load()