javascript - 用于多图像上传的 jQuery 图像预览

标签 javascript jquery upload preview

我在图像 uploader 中使用此代码:

HTML:

<input type="file" id="files" name="files[]" multiple />
<ul id="list"></ul>

JS:

function handleFileSelect(evt) {
var files = evt.target.files; // FileList object

for (var i = 0, f; f = files[i]; i++) {

  if (!f.type.match('image.*')) {
    continue;
  }

  var reader = new FileReader();

  reader.onload = (function(theFile) {
    return function(e) {
      var li = document.createElement('li');
      li.innerHTML = ['<img class="thumb" src="', e.target.result,
                        '" title="', escape(theFile.name), '"/><input type="text" class="rename" name="',i,'" value="',escape(theFile.name),'"><input type="text" class="reorder" name="',i,'" value="',i,'">'].join('');
      document.getElementById('list').insertBefore(li, null);
    };
  })(f);

  reader.readAsDataURL(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);

我的问题是当它到达 reader.onload 时,for 循环完成,所以 i = #of images 而不是 image # 就像我想要的那样。有没有办法解决这个问题,以便我的输入名称是它们旁边的图像的图像#?

最佳答案

reader.onload 运行的次数与上传的图片数量相同。

var x = 0;
  reader.onload = (function(theFile) {
    return function(e) {

      console.log(x);

      x++;

    };
  })(f);

关于javascript - 用于多图像上传的 jQuery 图像预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24805737/

相关文章:

PHP图像上传并将图像名称存储到MySQL表列脚本不起作用?

javascript - 如何获得 jQuery 可排序列表顺序?

javascript - 带无限滚动的 Jquery UI 自动完成

ruby-on-rails - s3sh 命令行 ubuntu 仍然存在(EC2,s3 amazon)

javascript - 如何在 jQuery 中使用 jquery 变量?

javascript - 使用 Enter Keydown Event 移动到下一个输入

php - 负载平衡服务器的文件上传最佳解决方案

javascript - 如何序列化未选中的复选框的数组?

javascript - momentjs 减去返回相同的值

javascript - 使用多对多关联向 SailsJS 模型添加重复项