Плагин загрузки файла jQuery снова загружает первое изображение при загрузке второго - PullRequest
0 голосов
/ 17 декабря 2018

Я использую базовую версию плагина загрузки файлов jQuery -> https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin

Я пытался инициировать загрузку файлов при нажатии кнопки отправки вместо стандартной отправки при выборе файлов.Для этого я установил для параметра autoUpload значение false (https://github.com/blueimp/jQuery-File-Upload/wiki/Options#autoupload), и настроил функцию обратного вызова add (https://github.com/blueimp/jQuery-File-Upload/wiki/Options#add).

). При первой загрузке файла все идет отлично, и загрузка файла происходит при нажатии.кнопка отправки. Однако при второй загрузке обработчик события click при отправке запускается дважды и загружает предыдущий файл вместе с загрузкой текущего.

Код загрузки файла:

$('#create-image').fileupload({
  dataType: 'json',
  singleFileUploads: false,
  autoUpload: false,
  add: function(e, data) {
    $(".button.img-submit").click(function() {
      console.log(data);
      data.submit();
    });
  },

1 Ответ

0 голосов
/ 17 декабря 2018

Проблема решена.Обработчик события click связывался каждый раз, когда вызывался обратный вызов add.Итак, при первой загрузке изображения обработчик привязывается к кнопке для этого файла.Во второй раз обработчик связывается снова, теперь для второго файла.Из-за чего оба файла передаются при нажатии кнопки во второй раз.Добавление отмены привязки к кнопке перед привязкой обработчика события щелчка решило эту проблему.Модифицированный код:

$('#create-image').fileupload({
  dataType: 'json',
  singleFileUploads: false,
  autoUpload: false,
  add: function(e, data) {
    $(".button.img-submit").unbind().click(function() {
      data.submit();
    });
  },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...