javascript - Jquery:变量未在回调中初始化?

标签 javascript jquery callback

我在 Javascript-Jquery 中有以下代码片段:

var result = "";
$.ajax({
    type: 'POST',
    url: 'update.php',
    data: { 'val': $val }
})
.done(function(data) {
    alert(data); // shows right response
    result = data;
    alert(result); // shows right response
});
alert(result); // shows nothing

即使我在回调中初始化了结果,但当我警告结果变量时我什么也没得到(它仍然是“”)?为什么是这样?

最佳答案

这是因为 ajax 调用是异步运行的。仅仅因为第二个警报是在 ajax 调用之后,您仍然必须 a: 编写一个回调方法以在调用完成时触发,或者 b: 同步完成 ajax 调用。有关 async 属性及其描述,请参阅 jquery ajax 文档。

关于javascript - Jquery:变量未在回调中初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20233087/

相关文章:

javascript - (window).scrollTop 函数在第一次单击时不会触发

javascript - 如何创建动态下拉列表?

javascript - Jquery jsonp请求回调函数未触发

Python 回调函数占位符?

c# - 使用通用回调是一种不好的形式吗?

javascript - 我想在输入时使用 jQuery 将一个文本框值绑定(bind)到另一个文本框

javascript - 一个简单的片段被解析了多少次?

javascript - 让 Backbone.js fiddle 工作

javascript - Bootstrap 固定菜单隐藏内容

jquery - jQuery 的each 方法中的$(this) 和$(element)