Jquery 如何为回调保留变量

Jquery 如何为回调保留变量,jquery,Jquery,如果我有以下资料: jqxhr = $.ajax(settings) .done(function(result) { 但是我有一个名为myID的变量,我需要在ajax调用完成后引用它。由于ajax是异步的,我担心到时候myID会变脏。调用done 问:如何保存myID的副本,使其成为done方法中的正确值?我是否使用.context()?您可以保存到$.data中,如果有人试图重新插入,您可以拒绝它 通过这种方式,您可以保存原始值您可以将原始值保存到$.data中,以后如果有人试图重新

如果我有以下资料:

jqxhr = $.ajax(settings)
   .done(function(result) {
但是我有一个名为myID的变量,我需要在ajax调用完成后引用它。由于ajax是异步的,我担心到时候myID会变脏。调用done


问:如何保存myID的副本,使其成为done方法中的正确值?我是否使用.context()?

您可以保存到$.data中,如果有人试图重新插入,您可以拒绝它


通过这种方式,您可以保存原始值

您可以将原始值保存到$.data中,以后如果有人试图重新插入,您可以拒绝它

这样可以保存原始值

使用闭包:

var myID = 1;
(function(myID){ // you can choose a different variable name here to avoid confusion
    jqxhr = $.ajax(settings)
        .done(function(result) {
            alert(myID); // will still be 1
        });
})(myID)

myID = 2;
下面是一个例子:

使用闭包:

var myID = 1;
(function(myID){ // you can choose a different variable name here to avoid confusion
    jqxhr = $.ajax(settings)
        .done(function(result) {
            alert(myID); // will still be 1
        });
})(myID)

myID = 2;
下面是一个例子:


您不能发送它以便从“结果”中获取它,或者在对象(myID.id)中使用另一个名称/对象吗?您不能发送它以便从“结果”中获取它,或者在对象(myID.id)中使用另一个名称/对象吗?