2012-07-13 31 views
1

在網頁的敏捷上傳插件,在那裏他寫的第3版的發佈,它的開發者寫道:如何爲'Agile Uploader'版本3添加JavaScript回調?

「JavaScript的回調沒有更多取而代之的是,還有更多的的。‘事件’系統,這樣你就可以定義一個事件處理函數,如果你想構建自己的JavaScript來與Agile Uploader一起工作。「

不用說,擁有回調函數是非常重要的。但是,我並沒有真正明白他的意思是「定義一個事件處理函數...」。 總之,我需要一個回調函數,但我不明白如何添加一個與此插件的版本3。我該怎麼做?

請幫附帶敏捷上傳3.0

+0

從我的理解是,你必須附加一個處理函數(你應該回調)到一個事件。讓我想到一個eventListener。 – EricG 2012-07-13 19:43:35

回答

0

被稱爲JavaScript文件敏捷上傳者3.0.js

(如果使用這種方法也需要jQuery的。)

該文件具有實現的核心功能,並且在頂部是事件處理函數的一個準備就緒的工作示例。定義開始爲:

$.fn.agileUploaderEvent = function(event) {.... 

初始化敏捷上傳,你會打電話給你要使用的div元素上.agileUploader()方法。在該方法中,您可以設置選項。

可以設置js_event_handler:選項(這是flashVars:子選項),以自己的函數的名稱,而不是使用默認的,例如:

$(document).ready(function() { 
    $('#image-uploader').agileUploader({ 
     flashVars: { 
      js_event_handler: '$.fn.myUploadEventHandler', // <-- HERE! 
      file_limit: 10, 
      maxFileMessage: 'The maximum number of files you can upload has been reached.', 
      ... etc 
     }, 
     flashSrc: '.../your-path-to-the-swf-file/agile-uploader.swf', 
     ... etc 
    }); 

現在定義的功能。你可以調用現有agileUploaderEvent()函數來使事情更加容易,如果你想,然後就去做多餘的東西,因爲你需要算賬,例如:

 $.fn.myUploadEventHandler = function (event) { 

     // First call the default event handler (optional, you could completely rewrite) 
     $.fn.agileUploaderEvent(event); 

     // Now handle the events we want to 
     switch (event.type) { 
      case 'progress': 
       $.fn.myExtraProgressHandler(event.file); // Call my custom function (handler) 
       break; 
      case 'file_already_attached': 
       console.log('The same file was already attached.'); // Do something useful? 
       break; 
     }; 
    }; 

    $.fn.myExtraProgressHandler = function (file) { 
     if (file.percentEncoded >= 100) { 
      console.log('File progress reached 100%'); // Just an example... 
      $("#file-attached").show(); // Do whatever we need to when progress >= 100% 
     } 
    }; 

這個例子使用jQuery的,但如果你打算在「獨自行事」上適用同樣的原則。

相關問題