ここで紹介されているように、Ajax File Upload を使用しようとしています: http://valums.com/ajax-upload/
ご覧のとおり、スクリプトを初期化するために qq.FileUploader オブジェクトを作成する必要があります。ただし、要素の ID を知らなくても、このオブジェクトを動的に作成できる必要があります。私はこのようなものを作成しようとしました:
var uploader, i = 0;
$(".file-upload").each(function() {
$e = $(this);
i++;
uploader[i] = new qq.FileUploader({
element: $(this)[0],
action: 'uploadfile.php',
allowedExtensions: ['doc', 'docx', 'pdf'],
multiple: false,
onComplete: function(id, fileName, responseJSON) {
$($e).siblings('input').val(responseJSON.newfilename);
}
});
});
[i]
配列内にオブジェクトを含めることができないため、追加した部分がスクリプトを壊すことを知りました。
このオブジェクトを動的に作成する別の方法はありますか? それらはすべて一意の名前を持つ必要があります。そうしないと、onComplete
関数はそれらすべてに対して上書きされます。を使用して実験しましeval()
たが、正しく動作させることができないようです。