在 Agile Uploader 插件的网页上,他写到版本 3 的发布,其开发人员写道:
“不再有 JavaScript 回调。取而代之的是一个“事件”系统。如果您想构建自己的 JavaScript 以与 Agile Uploader 一起使用,您可以定义一个事件处理函数。”
不用说,拥有回调函数非常重要。但是,我真的不明白他所说的“定义一个事件处理函数......”是什么意思。简而言之,我需要一个回调函数,但我不明白如何在这个插件的版本 3 中添加一个。我该怎么做?
请帮忙
在 Agile Uploader 插件的网页上,他写到版本 3 的发布,其开发人员写道:
“不再有 JavaScript 回调。取而代之的是一个“事件”系统。如果您想构建自己的 JavaScript 以与 Agile Uploader 一起使用,您可以定义一个事件处理函数。”
不用说,拥有回调函数非常重要。但是,我真的不明白他所说的“定义一个事件处理函数......”是什么意思。简而言之,我需要一个回调函数,但我不明白如何在这个插件的版本 3 中添加一个。我该怎么做?
请帮忙
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,但如果您计划“单干”,同样的原则也适用。