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函数中使用它?
任何的想法?
标志和ajax都是函数的主体。该函数内部没有其他内容。

最佳答案

如果通过引用进行访问,则可以访问该变量。 Javascript中的所有对象都是引用值,只是原始值不是(例如:int,string,bool等)
因此,您可以将标志声明为对象:

var flag = {}; //use object to endure references.

$.ajax({
    ... //type, url, beforeSend, I'm not able to access flag here
    success: function(){
        console.log(flag) //you should have access
    }
});
或强制成功函数具有所需的参数:
var flag = true; //True if checkbox is checked

$.ajax({
    ... //type, url, beforeSend, I'm not able to access flag here
    success: function(flag){
        console.log(flag) //you should have access
    }.bind(this, flag) // Bind set first the function scope, and then the parameters. So success function will set to it's parameter array, `flag`
});

关于javascript - 在ajax内部访问javascript变量成功,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30734372/

10-13 00:18