我对jQuery File Upload插件有一个奇怪的问题.
如果我使用这个西塔克斯:
$('fileupload').fileupload({
url: myurl,
add: function(e, data){
console.log("add event");
},
processalways: function(e, data){
console.log("processalways event");
}
});
processalways事件不会发生,但是我得到了正确的data.context变量(即具有添加文件进度条的div).
当我用这个罪过
$('fileupload').fileupload({
url: myurl
}).on('fileuploadadd',function(e, data){
console.log("add event");
}).on('fileuploadprocessalways', function(e, data){
console.log("processalways event");
});
processalways事件正确发生,但是我得到了错误的data.context(我认为在这种情况下data.context将始终引用$(‘fileupload’)元素.
我需要过程事件和data.context变量.我能怎么做?
解决方法:
第一种语法
如果要启动该过程,则必须调用data.submit();.进入添加功能.
然后,您将无法调用processalways回调,始终应使用according to the documentation:
$('input').fileupload({
url: "/echo/json",
add: function (e, data) {
console.log("Add callback");
$('#start_upload').click(function(){
data.submit();
});
},
always: function (e, data) {
console.log("Always callback");
}
});
第二种语法
我从未使用过它,但是如果它可以工作,那是因为fileuploadd不存在.因此,这是使用的默认fileuploadadd,它可能会调用data.submit().