AjaxUpload - несколько кнопок загрузчика
Добрый день. Имеется такой кусок скрипта, который вставляет на страницу блок с загрузчиком AjaxUpload:
function product_foto(product_row) { ................. ................ if (ui.item['foto'] != '') { html = '<div class="fotos">'; for (i = 0; i < ui.item['foto'].length; i++) { foto = ui.item['foto'][i]; if (foto['type'] == 'file') { html += '<div>'; html += '<a id="file-link-' + foto['product_foto_id'] + '-' + product_row + '" class="file-link"></a>'; html += '<a id="button-foto-' + foto['product_foto_id'] + '-' + product_row + '" class="btn"><?php echo $button_upload; ?></a>'; html += '<input type="hidden" name="foto_product[' + product_row + '][foto][' + foto['product_foto_id'] + ']" value="' + foto['foto_name'] + '" />'; html += '</div>'; } } html += '</div>'; $('#product_fotos' + product_row).append(html); for (i = 0; i < ui.item['foto'].length; i++) { foto = ui.item['foto'][i]; if (foto['type'] == 'file') { var upbtn = $('#button-foto-' + foto['product_foto_id'] + '-' + product_row); var uplnk = $('#file-link-' + foto['product_foto_id'] + '-' + product_row); var upipt = $('input[name=\'foto_product[' + product_row + '][foto][' + foto['product_foto_id'] + ']\']'); new AjaxUpload('#button-foto-' + foto['product_option_id'] + '-' + product_row, { action: 'upload.php', name: 'file', autoSubmit: true, responseType: 'json', onSubmit: function(file, extension) { upbtn.after('<img src="view/image/loading.gif" class="loading" />');// не срабатывает }, onComplete: function(file, json) { if (json['success']) { $('#info').html('<div class="success">' + json['success'] + '</div>'); uplnk.empty().append(json['filename']).show('fast');// не срабатывает upipt.attr('value', json['filename']);// не срабатывает } if (json.error) { $('#info').html('<div class="warning">' + json['error'] + '</div>'); } } }); } } } } Этот код вставляет на страницу блок с кнопкой загрузки файла, вот в таком виде: <div class="fotos"> <div> <a id="file-link-222-1" class="file-link"></a> <a id="button-foto-222-1" class="btn">Загрузить файл</a> <input type="hidden" name="foto_product[1][foto][222]" value=""> </div> </div> Все работает как надо если блок один, но иногда блоков таких может быть несколько: <div class="fotos"> <div> <a id="file-link-222-1" class="file-link"></a> <a id="button-foto-222-1" class="btn">Загрузить файл</a> <input type="hidden" name="foto_product[1][foto][222]" value=""> </div> <div> <a id="file-link-231-1" class="file-link"></a> <a id="button-foto-231-1" class="btn">Загрузить файл</a> <input type="hidden" name="foto_product[1][foto][231]" value=""> </div> </div> Вот здесь возникает проблема. Не правильно привязывается AjaxUpload и нажатие любой кнопки ведет к отработке загрузчика, но условия onSubmit и onComplete срабатывают применительно к последнему блоку, а не к тому, в котором нажата кнопка. Отсюда вопрос, как разрулить эту ситуацию, чтобы AjaxUpload отрабатывал в блоке, в котором нажата его кнопка? |
Ни у кого нет никаких мыслей? Хотя бы теории? Если я их уже не проверял, проверю.
|
Цитата:
|
Часовой пояс GMT +3, время: 05:21. |