Javascript 如何在AJAX调用后生成smth?

Javascript 如何在AJAX调用后生成smth?,javascript,jquery,ajax,callback,Javascript,Jquery,Ajax,Callback,我有一个ajax调用,它返回一个字符串并创建一个元素,其中包含一个字符串。然后我想向新创建的span添加一些类。但由于AJAX的异步特性,添加类的函数在AJAX调用之前执行 那么,我应该使用延期承诺吗?怎么做 中有一些简单的代码 预期结果: 单击按钮获取响应,并将类添加到span您希望将回调函数作为参数传递给您的get(): 在get()中: 不同的对象替代方法是从get()返回$.getJSON()承诺,并在其回调中添加类。完成回调: function get() { return

我有一个ajax调用,它返回一个字符串并创建一个
元素,其中包含一个字符串。然后我想向新创建的
span
添加一些类。但由于AJAX的异步特性,添加类的函数在AJAX调用之前执行

那么,我应该使用延期承诺吗?怎么做

中有一些简单的代码

预期结果:
单击按钮获取响应,并将类添加到span

您希望将回调函数作为参数传递给您的
get()

get()
中:


不同的对象替代方法是从
get()
返回
$.getJSON()
承诺,并在其
回调中添加类。完成
回调:

function get() {
    return $.getJSON( // more code
}

$('button:eq(0)').click(function () {
    get().done(function () {
       $('span').addClass('red');
    });
});

在这里,我也修复了你的css类。 你说:

这是一个错误:)

已改为

span.red {color:red}
记住


Ajax是一种异步调用,因此在完成请求后,您要执行的代码不能在调用后执行,但是它必须只写在回调中,一旦完成调用,就调用。

对不起,我不是在寻找像您这样的解决方案。。。将所有函数存储在
.done中不是一个好主意(function(result){}
我想看一个使用回调的示例。您不必将所有函数都存储在.done中,这正是达到目的所需的。但是,在这个站点上,您可以询问一些问题,等待答案,然后使用最适合您的函数:)
function get() {
    return $.getJSON( // more code
}

$('button:eq(0)').click(function () {
    get().done(function () {
       $('span').addClass('red');
    });
});
span.red {color:green}
span.red {color:red}