1

在 Agile Uploader 插件的网页上,他写到版本 3 的发布,其开发人员写道:

“不再有 JavaScript 回调。取而代之的是一个“事件”系统。如果您想构建自己的 JavaScript 以与 Agile Uploader 一起使用,您可以定义一个事件处理函数。”

不用说,拥有回调函数非常重要。但是,我真的不明白他所说的“定义一个事件处理函数......”是什么意思。简而言之,我需要一个回调函数,但我不明白如何在这个插件的版本 3 中添加一个。我该怎么做?

请帮忙

4

1 回答 1

0

Agile Uploader 3.0 包含一个名为Agile-uploader-3.0.js的 javascript 文件

(如果使用此方法,还需要 jQuery。)

该文件实现了核心功能,顶部是事件处理函数的现成可用示例。定义开始为:

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

要初始化 Agile Uploader,您将在要使用的 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,但如果您计划“单干”,同样的原则也适用。

于 2012-10-17T22:26:14.390 回答