Определение того, был ли применен плагин

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть приложение, которое загружает разговоры. Каждый раз, когда загружается диалог, мне нужно уничтожить и повторно запустить средство загрузки файлов.

За: https://github.com/blueimp/jQuery-File-Upload/wiki/API

Я пытаюсь:

 // First destroy existing instance
$('.upload').fileUpload('destroy');
    // Init
$('.upload').fileUploadUI({
      ........
  

Проблема в том, что при первом запуске я получаю сообщение об ошибке: «Не найдено FileUpload с пространством имен «file_upload», назначенным этому элементу»

Есть идеи о том, как я могу каким-то образом определить, был ли применен плагин, и только затем уничтожить? Thansk

Ответ №1:

Вы должны быть в состоянии определить, был ли плагин применен к элементу, используя «пространство имен» (как на него ссылается плагин), которое является .data() ключом, используемым плагином.

При текущем defaultNamespace состоянии 'file_upload' попробуйте:

 var upload = $('.upload');

if (upload.data('file_upload'))
    upload.fileUpload('destroy');
  

Вместо того, чтобы просто:

 $('.upload').fileUpload('destroy');
  

Это будет отражать собственный тест плагина, который вы можете увидеть в строке 920 текущего источника.