#jquery #upload #progress-bar #jquery-forms-plugin #identify
#jquery #загрузка #индикатор выполнения #jquery-forms-плагин #определить
Вопрос:
Мне нужно получить доступ id
к form
элементу с class="ajax-upload-image"
помощью. У меня есть несколько таких forms
элементов с одинаковыми class
, поэтому мне нужно получить доступ к id
, но, похоже, я не могу получить правильные значения, используя $(this)
. Мне нужно это значение в обоих beforeSend
, uploadProgress
, и complete
.
Есть ли какой-нибудь способ сохранить пользовательскую переменную или извлечь ее через data
отправляемую? Мое текущее «решение» состоит в том, чтобы сохранить глобальную переменную с идентификатором, к которому обращались в последний раз, но это вряд ли является решением, поскольку можно использовать формы до завершения загрузки предыдущих, что означает изменение глобальной переменной.
Мой урезанный код до сих пор (без глобальной переменной):
$('.ajax-upload-image').ajaxForm({
delegation: true,
dataType: 'json',
beforeSend: function() {
// Some code
},
uploadProgress: function(event, position, total, percentComplete) {
// Some code
},
complete: function(data) {
// Some code
}
});
Любая помощь высоко ценится, так как я, кажется, очень застрял на этом этапе.
Комментарии:
1. почему глобальные переменные не работают? работает, даже если они отправляются одновременно!
var that=this;
2. @AminJafari Мне нужно иметь их динамическое количество без ограничений. Глобальные переменные просто не работают для этого.
Ответ №1:
При вызове вы ajaxSubmit()
можете передать context:
параметр. Все обратные вызовы будут привязаны к этому контексту:
$(".ajax-upload-image").submit(function() {
$(this).ajaxSubmit({
context: this,
...
});
});
Затем вы сможете использовать $(this)
и this.id
в обратных вызовах для ссылки на отправленную форму.