FileReader的onLoad回调的参数问题



 var images = evt.target.files;
for (var i = 0, img; img = images[i]; i++) {
if (!img.type.match('image.*')) {
    continue;
}           
var index = i;
var reader = new FileReader();
reader.onload = (function(file) {
return function(e) {
    var span = document.createElement('span');                      
    span.innerHTML = ['<br><div><img id="image_', index, '" class="thumb" src="', e.target.result,  '" title="', escape(file.name), '"/><br> <input id="text_', index,'" type="text" onkeydown="handleEvent(', index, ')" /><br> <input id="button_', index,'" type="button" value="upload" onclick="upload(', index, ')"/> </div>'].join('');
    document.getElementById('results').insertBefore(span, null);
};
            })(img);            
reader.readAsDataURL(img);

我利用input中的file类型, 加载几张图片, 希望实现一个上传机制, 每张图片都可以单独上传, 所以每个图片和文本框,按钮都有id, 这个id我想用跟i相关的变量,但是FileReader是一个异步的回调函数onLoad来实现这个过程, 请问有什么办法能把这个i传到回调的这个函数里面?

chrome html5 JavaScript

希之继承者 11 years, 8 months ago

Your Answer