2013-09-23 18 views
0

在下面的例子:https://github.com/blueimp/jQuery-File-Upload/blob/master/basic-plus.html 我們可以找到以下的回調:理解「添加文件」回調

}).on('fileuploadadd', function (e, data) { 
    data.context = $('<div/>').appendTo('#files'); 
    $.each(data.files, function (index, file) { 
     var node = $('<p/>') 
       .append($('<span/>').text(file.name)); 
     if (!index) { 
      node 
       .append('<br>') 
       .append(uploadButton.clone(true).data(data)); 
     } 
     node.appendTo(data.context); 
    }); 

我試圖複製該代碼,但不明白爲什麼有一個「每個」在該函數內部,因爲每個上傳的文件都會執行一次回調(所以如果我同時上傳3個文件,回調將執行3次)。 那麼,爲什麼這裏需要一個「每個」循環呢?在我看來,它總是會循環一個元素:上傳的文件。

請幫幫忙,我很絕望:(

+0

是否有問題?您是否嘗試過使用或不使用'$ .each'來查看它所做的事情?我不完全確定這是什麼絕望。 – NotMe

+0

@ChrisLively問題是我不明白它是如何工作的,因爲它在有或沒有EACH循環的情況下都能正常工作,所以我明顯錯過了一些東西。 – Tom

+0

有兩種方法可以找出一些javascr中發生了什麼ipt代碼。可以使用瀏覽器中內置的工具在其上放置斷點並逐步執行,或者在發出某些變量值的各個點的函數內添加'alert()'消息。要麼會告訴你到底發生了什麼事情。 – NotMe

回答

0

我認爲函數內部每個迴路是用來添加按鈕,如果你注意到uploadButton有一些附加的每個文件的相關內容實例文件名等.... 按鈕和點擊事件