Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环JS变量不';t在函数中显示正确的值_Javascript_Jquery_Jquery Mobile_Cordova - Fatal编程技术网

Javascript 循环JS变量不';t在函数中显示正确的值

Javascript 循环JS变量不';t在函数中显示正确的值,javascript,jquery,jquery-mobile,cordova,Javascript,Jquery,Jquery Mobile,Cordova,我需要完成以下任务。但这总是只提醒“5”,而不是1、2、3、4和5。我怎样才能解决这个问题?请帮忙 for(var x=1; x<=5; x++){ something.load(function(result){ alert(x); }); } for(var x=1;x这是由于关闭造成的。当回调运行时,它将在当前状态下警告变量(因此在循环之后) 要解决这个问题,您可以创建一个新的闭包来保持变量状态 for(var

我需要完成以下任务。但这总是只提醒“5”,而不是1、2、3、4和5。我怎样才能解决这个问题?请帮忙

    for(var x=1; x<=5; x++){
        something.load(function(result){
            alert(x);
        });
    }

for(var x=1;x这是由于关闭造成的。当回调运行时,它将在当前状态下警告变量(因此在循环之后)

要解决这个问题,您可以创建一个新的闭包来保持变量状态

for(var x=1; x<=5; x++){
    (function(x) {
        something.load(function(result){
            alert(x);
        });
    }(x));
}

用于席VX=1;XI注意到许多建议的重复倾向于从不同的方向或不同的已知知识水平问问题;即那些问题已经知道问题与闭包有关。这会从1到5的顺序告警吗?不,这取决于何时触发回调函数。首先,它将在1之前调用2。此时,流不是由循环控制的,而是由异步操作控制的。如果您需要按顺序触发这些回调,请签出异步流库,如async.js或Promise规范(jQuery内置了Promise实现,您也可以使用)。