アップロードする前に複数の画像をプレビューしていて、"Preview an image before it is uploaded"への@ ratan-paul応答を使用して試してみました。しかし、コードをちょっと微調整しようとすると、予期しない結果になりました。私がしたのは、各<image>
のための<span>
タグをいくつかのスタイリングオプションを追加するために作成することでした。ここに私がなってしまったjQueryのコードは次のとおりです。アップロード前に画像をプレビューするときに予期しない動作が発生する
$(function() {
var span_id = "";
function readURL(input) {
for(var i =0; i< input.files.length; i++){
var span = $('<span>');
span_id = "span"+i;
span.attr('id',span_id);
span.appendTo('#img-previews');
if (input.files[i]) {
var reader = new FileReader();
reader.onload = function (e) {
var img = $('<img id="dynamic">');
img.attr('src', e.target.result);
img.attr('height','150px');
img.attr('width','200px');
img.appendTo("#"+span_id);
};
reader.readAsDataURL(input.files[i]);
}
}
}
$("#imgUpload").change(function(){
readURL(this);
});
});
今、奇妙なことは、私は私の上のコードを実行すると、各画像のための<span>
タグを作成しますが、すべての画像が作成された最後の<span>
にぎゅうぎゅう詰めしてしまうことがあります。一方、私はスクリプトをデバッグする場合は、それぞれの画像が独自の<span>
タグに挿入されている望みの結果が得られます。私はこれにちょっと戸惑っています。なぜ誰かがこれが起こっているかどうか、あるいは避ける方法が援助に感謝しているようなアイデアがあれば。ここで
は、私はデバッグなしでスクリプトを実行する際の画面のグラブです:ショートストーリー
私はlet文@duncan-smithでforループを切り替えようとしましたが、結果は変更されませんでした。私のIDE(phpstorm 2017.1.4)では、「letは、現在のJavaScriptバージョンでは現在の定義ではサポートされていません」というエラーが表示されています。私はyii2フレームワークで作業しており、インストールされている現在のjqueryバージョンは2.2.4です。私が現在テストしているブラウザは、mozilla firefox 54.0(32bit)、firefox開発者版55.0b6(64bit)、chrome 59.0.3071.115(official build)(64bit)です。何が問題なのか? – natral
@natral、私は私の答えを更新しました。それがあなたのために働くかチェックしてください。 –
@ダンカンが大いに役立つ素晴らしい。ありがとう! – natral