2011-04-14 2 views
7

jQuery Uploader fichier: https://github.com/blueimp/jQuery-File-UploadjQuery, comment vérifier si un plugin a déjà été appliqué à un div?

J'utilise le plugin ci-dessus. Comment jQuery puis-je vérifier si le fichier fileUpload a déjà été appliqué?

je reçois l'erreur suivante maintenant:

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 

Y at-il un moyen de vérifier avant mon appels de fonction:

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

Merci

Répondre

16

Vous pouvez ajouter/définir une classe en tant que drapeau des sortes. Dans ce cas, nous allons ajouter une classe appelée 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({...}); 
}); 

Mise à jour comme indiqué ci-dessous par yoavmatchulsky, vous pouvez aussi, faire plus facilement

$('.upload:not(.applied)').addClass('applied').fileUploadUI({...}); 
+5

ou utilisez $ ('télécharger:. Pas (.applied)') .fileUploadUI (...) – yoavmatchulsky

2

Le téléchargement de fichiers jQuery plug-in stocke un référence à son gestionnaire FileUpload en tant qu'objet jQuery data.
Le message d'erreur "FileUpload with namespace" file_upload "déjà affecté à cet élément" provient du contrôle du plugin pour cette référence de données.

Vous pouvez initialiser le plug-in de la manière suivante pour éviter cette erreur:

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

Merci, cela a résolu mes problèmes. –

2

Vous pouvez aussi le faire

if(undefined != $('.upload').data('blueimp-fileupload')){ 
    console.log('plugin already applied to the element'); 
} 
else console.log('plugin not applied to the element'); 
+1

Cela devrait être la réponse. Parfois, nous n'avons pas de contrôle pour modifier le code. (Pensez, test de sélénium du code de tiers.) –

+1

Simple et belle! –

Questions connexes