被稱爲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的,但如果你打算在「獨自行事」上適用同樣的原則。
從我的理解是,你必須附加一個處理函數(你應該回調)到一個事件。讓我想到一個eventListener。 – EricG 2012-07-13 19:43:35