我有一張表,其中每行包含一些數據(data-id
)和一個<div class = "upload">Upload</div>
。上傳者需要傳遞一個對象,其中包含uploader_obj.button
設置爲啓動<div>
,任何參數(如data-id要發送到服務器),以及一些其他我沒有顯示的東西。在對象中引用DOM
以下腳本在表格上循環,修改要設置按鈕和params.id的對象,並在每一行上創建上傳器。
雖然在每一行上都創建了一個單獨的上傳按鈕,但它們都引用了設置爲最後一行值(即222)的相同的params.id。我需要將每個設置爲其特定行的值。
解決這個問題的一種方法是讓每個上傳者擁有自己的upload_obj,但這看起來像是浪費了內存。
相反,我試圖在uploader_obj內引用data-id。我可以在onSubmit中這樣做,但是,還沒有弄清楚如何使用這個值來設置param.id。我試圖通過做類似params: {'id':$(this.button).parent().parent().data('id')}
這樣的參數來設置它,但這是我的文檔,而不是上傳者。
所以...沒有爲每一行分別創建一個uploader_obj,我怎麼能讓每一行的上傳者向服務器發送它自己的param.id?謝謝
PS。對於弱題目抱歉。我真的試圖想到一個更好的,但不能。
<table>
<tr data-id="123"><td>Hello</td><td><div class="upload">Upload</div></td></tr>
<tr data-id="321"><td>Hello</td><td><div class="upload">Upload</div></td></tr>
<tr data-id="222"><td>Hello</td><td><div class="upload">Upload</div></td></tr>
</table>
var uploader_obj = {
button:null,
params: {'id':null},
onSubmit: function(id, fileName) {
var id=$(this.button).parent().parent().data('id')
console.log(id);
},
otherStuff: whatever
};
$('#myTable div.upload').each(function(i,v){
uploader_obj.button=this;
uploader_obj.params.id=$(this).parent().parent().data('id');
new qq.FileUploaderBasic(uploader_obj);
});
是的,我認爲這可能是我需要做的。傳遞給FireUploaderBasic的對象比我顯示的要大,我希望有一種方法可以傳遞同一個對象。 – user1032531
如果你想要不同的值,你需要不同的對象,或者至少重寫對象中的所有值,在你的情況下它看起來更像是工作,而不是在每次迭代中創建一個新對象。 – adeneo