【发布时间】:2015-06-09 14:03:33
【问题描述】:
var flag = false; //True if checkbox is checked
$.ajax({
... //type, url, beforeSend, I'm not able to access flag here
success: function(){
// I'm not able to access flag here
}
});
在 ajax 内部,如果我尝试访问 flag 它说它没有定义。如何在 ajax 函数中使用它?
有什么想法吗?
flag 和 ajax 都是函数体。该函数中没有其他内容。
【问题讨论】:
-
因为一旦ajax调用触发成功回调,flag就会超出范围。
-
@RajaprabhuAravindasamy 不,
success不会神奇地从上下文中删除变量。这里flag变量甚至无法从 ajax 选项访问,因此 OP 将其设置在 ajax 方法范围之外$ -
你到底在哪里定义标志?我做了一个测试,效果很好。闭包意味着如果
flag和$.ajax调用在同一范围内,那么标志将可用(确实如此)。您的问题中缺少一些代码... -
我感觉这不是您的实际代码。这应该可以正常工作jsfiddle.net/djgdggay
-
@GopsAB 你误解了我的意思。我不是说这不是您自己的代码,我是说您发布的代码不能代表您描述的问题。
标签: javascript jquery ajax