如果我有以下几点:如何保持一个变量回调
jqxhr = $.ajax(settings)
.done(function(result) {
但我有一个变量称为身份识别码,我需要Ajax调用完成后参考。由于ajax是异步的,恐怕在被调用的时候,myID会变脏。
问:如何保存myID的副本,以便它是done方法中的正确值?我使用.context()?
如果我有以下几点:如何保持一个变量回调
jqxhr = $.ajax(settings)
.done(function(result) {
但我有一个变量称为身份识别码,我需要Ajax调用完成后参考。由于ajax是异步的,恐怕在被调用的时候,myID会变脏。
问:如何保存myID的副本,以便它是done方法中的正确值?我使用.context()?
使用闭包:
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;
下面是一个例子:
不错,你创建了一个闭包.... :)很好 –
你可以保存到$ .data中,如果有人试图重新插入 - 你拒绝它。
这样,你可以保存原始值
你不能要么只是把它这样你就可以从“结果”中获取它,或者使其成为对象内的另一个名称/对象(myID.id)? –