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传到回调的这个函数里面?
var reader = new FileReader();
reader.index = index;
然后在onload函数里面就可以获取到this.index就是你传的参数i