2011-04-14 21 views
7

jQuery Dosya Yükleme: https://github.com/blueimp/jQuery-File-UploadjQuery, bir eklentinin zaten bir div'a uygulanmış olup olmadığını nasıl kontrol edersiniz?

Yukarıdaki eklentiyi kullanıyorum. JQuery'de, fileUpload'un önceden uygulanmış olup olmadığını kontrol edebilir miyim?

şimdi aşağıdaki hatayı alıyorum:

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 

benim işlevi önce kontrol etmek için bir yol var aramaları mı:

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

Teşekkür

ekleyebilir

cevap

16

/a olarak bir sınıf set çeşitler bayrağı. yoavmatchulsky aşağıda belirttiği gibi bu durumda, biz jQuery Dosya Yükleme mağazaları bir eklentisi

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

yapmak veya $ kullanabilirsiniz ('yükleyin: (.applied değil)') .fileUploadUI (...) – yoavmatchulsky

2

ayrıca, daha kolay yapabilecekleri, Güncellemeapplied

//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({...}); 
}); 

denilen bir sınıf ekleyeceğiz FileUpload işleyicisine başvuru jQuery data nesnesi.
"Bu öğeye önceden atanmış" "dosya adı ile dosya yükleme" file_upload hata iletisi, bu veri başvurusu için eklentinin kendi denetiminden geliyor.

bu hatayı önlemek için aşağıdaki yolu eklentisi başlatabilir:

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

Teşekkürler, bu benim problemlerimi çözdü. –

2

Ayrıca bu

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

BU cevap olmalı. Bazen kodu değiştirmek için kontrolümüz yoktur. (Düşün, üçüncü taraf kodunun selenyum testi.) –

+1

Basit ve güzel! –

İlgili konular