jQuery, как проверить, был ли плагин уже применен к div? - PullRequest
7 голосов
/ 15 апреля 2011

jQuery File Uploader: https://github.com/blueimp/jQuery-File-Upload

Я использую плагин выше. Как в jQuery я могу проверить, если fileUpload уже был применен?

Теперь я получаю следующую ошибку:

Uncaught FileUpload with namespace "file_upload" already assigned to this element
jQuery.jQuery.extend._Deferred.deferred.resolveWithjquery-1.5.1.js:869
donejquery-1.5.1.js:6591
jQuery.ajaxTransport.send.callbackjquery-1.5.1.js:7382

Есть ли способ проверить перед вызовом моей функции:

$('.upload').fileUploadUI({
 .........
 .........
 .........

Спасибо

Ответы [ 3 ]

16 голосов
/ 15 апреля 2011

Вы можете добавить / установить класс в качестве флага сортировки. В этом случае мы добавим класс с именем applied

//scroll through each upload item
$('.upload').each(function(){

    //Make sure class is not found
    if (!$(this).hasClass('applied')) 

        //Apply Class and Upload Plugin
        $(this).addClass('applied').fileUploadUI({...}); 
}); 

Обновление , как указано ниже yoavmatchulsky, вы также можете, проще сделать

$('.upload:not(.applied)').addClass('applied').fileUploadUI({...});
2 голосов
/ 13 января 2016

Вы также можете сделать это

if(undefined != $('.upload').data('blueimp-fileupload') ){
    console.log( 'plugin already applied to the element' );
}
else console.log( 'plugin not applied to the element' );
2 голосов
/ 18 апреля 2011

Плагин загрузки файлов jQuery сохраняет ссылку на свой обработчик FileUpload как данные jQuery объект.
Сообщение об ошибке «FileUpload с пространством имен« file_upload », уже назначенное этому элементу», происходит из собственной проверки плагина на наличие этой ссылки на данные.

Вы можете инициализировать плагин следующим образом, чтобы предотвратить эту ошибку:

$('.upload').not(function () { return $(this).data('file_upload'); }).fileUploadUI({/*...*/});
...