2014-04-12 36 views
1

我有以下一段代碼如何從fineuploader處理程序獲取屬性?

<div class="cv-uploader" id="customid">Upload CV</div> 

$('.cv-uploader').fineUploader({ 

     debug: true, 
     request: { 
      endpoint: '/process', 
      params:{ elementId:$(this).attr('id') } 
     }, 
     //some other code 
}); 

我需要在該請求的參數來發送觸發fineuploader元件的ID。我試過$(this).attr('id'),但它不會工作。

請幫

感謝 的Sergiu

回答

0

這更是一個普通的JavaScript問題,然後精細上傳問題。問題在於你誤解了JavaScript中的上下文工作原理。在您的代碼中,this將始終引用window對象。顯然,這不是你想要的。

你可以這樣做:

$('.cv-uploader').fineUploader({ 

     debug: true, 
     request: { 
      endpoint: '/process', 
      params:{ elementId:$('.cv-uploader').attr('id') } 
     }, 
     //some other code 
}); 

...或這個:

$('.cv-uploader').fineUploader({ 

     debug: true, 
     request: { 
      endpoint: '/process' 
     }, 
     //some other code 
}) 
    .on("submitted", function(event, id) { 
     $(this).fineUploader('setParams', {elementId: $(this).attr('id')}, id); 
    }); 

後者的例子是儘可能細上傳的jQuery插件封裝設置任何jQuery的事件的環境處理程序作爲表示該元素的jQuery對象綁定到Fine Uploader實例。

但是,我會推薦第一種方法,因爲它更高效。

+0

太棒了!嘗試他們兩個,他們的工作就像魅力!非常感謝 :) –

相關問題