JS 变量作用域问题
在做html5的上传,可以使fileReader的onload的时候,输出的i一直都是最后的值,而不是
0,1,2,3....n ,
$('#' + opts.fileId).change(function () {
var files = document.getElementById(opts.fileId).files;
var i =0
for (i = 0; i < files.length; i++) {
var fRead = new FileReader();
fRead.onload = function (e){
console.log(i);
};
fRead.readAsDataURL(files[i]);
}
});
------解决方案--------------------fRead.onload =(function(_i){
return function (e){
console.log(_i);
}
})(i);
------解决方案--------------------fRead.onload = function (e) {
console.log(i);
};
改成下面试试
fRead.onload = function (index) {
return function () {
console.log(index);
};
}(i);
------解决方案--------------------