fineuploader バージョン 3.2 を使用しています。このような単一の HTML ページに複数のファインアップローダーのインスタンスが埋め込まれています
<div id="file-uploader_1" class="uploader">
<div id="file-uploader_2" class="uploader">
そして、これがファインアップローダーをアタッチする方法です
$('.uploader').fineUploader({
request: {
endpoint: './uploadfile',
params: {
imageid: function() {
return this.id;
}
}
},
multiple: false,
validation: {
allowedExtensions: ['jpeg', 'jpg', 'gif', 'png'],
sizeLimit: 551200 // 50 kB = 50 * 1024 bytes
},
text: {
uploadButton: 'Changepic'
}
}).on('complete', function(event, id, fileName, responseJSON) {
if (responseJSON.success) {
imgs[this.id]="data:image/jpg;base64,"+ data;
}
});
fineuploader にアタッチされた div の id を fileupload リクエストに渡したい。ただし、「this.id」が参照されているところはどこでも「未定義」が返されることがわかります。また、代わりに this.attr('id') を使用してみましたが、「Uncaught TypeError: Object # has no method 'attr'」というエラーが発生します。
ここで同様の質問を見つけました(FINEUPLOAD は ID をパラメーターとして渡します)が、解決策は粗雑すぎるようです。同じコードを繰り返すのではなく、より良い解決策を誰かが提案できますか?