0

アップロードされた画像のサムネイルを作成しようとしています。親指用のさまざまなクラスを作成したいのでi、ループの de を使用しようとしています。ただし、これは最終値のみを想定しています。なんで?ありがとう

for (var i = 0; i < inp.files.length; i++) {

//create the thumbnails
 var reader = new FileReader();
reader.onload = function (e) {
    $('.thumbs').append('<div class="thumb_item" id="c'+ i +'"></div>');
    $('<img />').attr({'src': e.target.result}).addClass('img_thumb').appendTo('.thumb_item:last');

};
reader.readAsDataURL(this.files[i]);
} 
4

2 に答える 2

1

コメントで指摘されているのと同じ手法を適用できないのはなぜですか?

reader.onload = (function(index)
                 {
                   return function (e)
                   {
                    $('.thumbs').append('<div class="thumb_item" id="c'+ index +'"></div>');
                    $('<img />').attr({'src': e.target.result}).addClass('img_thumb').appendTo('.thumb_item:last');
                   };
                 })(i);
于 2013-10-23T18:33:37.800 に答える
0

どうもありがとう、私はこの方法で解決しました:

for (var i = 0; i < inp.files.length; i++) {

        var reader = new FileReader();

    // Closure to capture the file information.
    reader.onload = (function (theFile) {

     var count = i;
        return function (e) {
    $('.thumbs').append('<div class="thumb_item" id="c'+ count +'"></div>');
    $('<img />').attr({'src': e.target.result}).addClass('img_thumb').appendTo('.thumb_item:last');

};
})(i);
reader.readAsDataURL(this.files[i]);
}
于 2013-10-23T19:05:34.997 に答える