Я экспериментирую с плагином BlueQ's jQuery-File-Upload , который, судя по demo , выглядит очень многообещающе.
Это действительно легко реализовать:
var $uploadButton = $("#fileop-upload");// <input type="file" id="fileop-upload" [etc] />
$uploadButton.fileupload({
url : "//domain/path/to/receive-uploaded-files"
});
Выбранные файлы загружаются нормально, не обновляя страницу должным образом, но, конечно, при такой минимальной конфигурации пользователь не получит никаких уведомлений.Вот где бы пригодились обратные вызовы плагина.
Согласно документации, существует два способа определения обратных вызовов.Например, событие add
(которое запускается при выборе файла для загрузки) может быть добавлено в исходный объект конфигурации следующим образом:
$uploadButton.fileupload({
add : addFileListener,
url : "//domain/path/to/receive-uploaded-files"
});
или альтернативно:
$uploadButton.bind("fileuploadadd", addFileListener);
Однако я обнаружил, что работает только первый подход, а второй ничего не делает.
Еще более любопытно, что никакие другие обратные вызовы - особенно progress
и start
- не кажутсябудь уволен независимо от того, как я их связываю:
$uploadButton.fileupload({
add : addFileListener,
progress : progressListener,
start : startListener,
url : "//domain/path/to/receive-uploaded-files"
});
или
$uploadButton.fileupload({
add : addFileListener,
url : "//domain/path/to/receive-uploaded-files"
});
$uploadButton.bind("fileuploadprogress", progressListener");
$uploadButton.bind("fileuploadstart", startListener");
У меня есть определенные функции прослушивателя, и код не сообщает об ошибках или предупреждениях.
Чем объясняется ошибка метода .bind
, и почему слушатели progress
или start
никогда не активируются?