Javascript 多个进度状态+;Ajax表单插件

Javascript 多个进度状态+;Ajax表单插件,javascript,jquery,ajax,progress,Javascript,Jquery,Ajax,Progress,我使用的是Ajax表单插件,我有一个发送多个请求的循环。 我试图获得每个文件的单独进度。这似乎有效,但文件的进度仅显示在代码的最后一个中 for (var i = 0; i < inp.files.length; i++) { $('form').ajaxSubmit({ beforeSend: function() { $('body').append('<p class="c'+ i +'"></p>'); var classe = '.c'

我使用的是Ajax表单插件,我有一个发送多个请求的循环。 我试图获得每个文件的单独进度。这似乎有效,但文件的进度仅显示在代码的最后一个

for (var i = 0; i < inp.files.length; i++) {
$('form').ajaxSubmit({
beforeSend: function() {
    $('body').append('<p class="c'+ i +'"></p>'); 
    var classe = '.c' + i;
},
uploadProgress: function(event, position, total, percentComplete) {
    var percentVal = percentComplete + '%';

    $(classe).append(percentVal);
    //console.log(percentVal, position, total);
}
});
}
for(var i=0;i

); 变量classe='.c'+i; }, 上载进度:功能(事件、位置、总数、完成百分比){ var percentVal=percentComplete+“%”; $(classe).追加(percentVal); //控制台日志(百分比、位置、总数); } }); }
2个文件的HTML输出:

<p class="c0"/>
<p class="c1">
79%
100%
81%
100%
</p>

79% 100% 81% 100%

有两个
100%
似乎可以得到这两个文件的进度。但是,它只打印最后一个元素。
谢谢

因为在c0的响应到来之前,Class E将更改为c1。。。 把它放到一个匿名函数中

for (var i = 0; i < inp.files.length; i++) {
    (function () {
        var classe = '.c' + i;
        $('form').ajaxSubmit({
            beforeSend: function () {
                $('body').append('<p class="c' + i + '"></p>');
            },
            uploadProgress: function (event, position, total, percentComplete) {
                var percentVal = percentComplete + '%';

                $(classe).append(percentVal);
                //console.log(percentVal, position, total);
            }
        });
    }());
}
for(var i=0;i

); }, 上载进度:功能(事件、位置、总数、完成百分比){ var percentVal=percentComplete+“%”; $(classe).追加(percentVal); //控制台日志(百分比、位置、总数); } }); }()); }
(未测试)


或者您必须将Ajax请求更改为sync,因为在c0的响应到来之前,classe将更改为c1。。。 把它放到一个匿名函数中

for (var i = 0; i < inp.files.length; i++) {
    (function () {
        var classe = '.c' + i;
        $('form').ajaxSubmit({
            beforeSend: function () {
                $('body').append('<p class="c' + i + '"></p>');
            },
            uploadProgress: function (event, position, total, percentComplete) {
                var percentVal = percentComplete + '%';

                $(classe).append(percentVal);
                //console.log(percentVal, position, total);
            }
        });
    }());
}
for(var i=0;i

); }, 上载进度:功能(事件、位置、总数、完成百分比){ var percentVal=percentComplete+“%”; $(classe).追加(percentVal); //控制台日志(百分比、位置、总数); } }); }()); }
(未测试)

或者您必须将Ajax请求更改为同步