jquery内部是如何处理ajax返回的response,并将返回的数据对应回调函数的参数
就是关于很多jquery的回调函数,回调函数里面的data参数如何进到回调函数里面的
这个data应该是服务器返回的,是如何赋给回调函数的
还有e
回调函数的参数是如何进到回调函数的
$(function() {
$.getScript('{{ MEDIA_URL }}js/jquery.fileupload.min.js', function () {
var popup = $('#upload-file-dialog2').addClass('fixed-upload-file-dialog');;
var popup_height = '200px';
popup.css({'height': popup_height}).data('height', popup_height);
var fu_status = $('.status', popup),
total_progress = $('.total-progress', popup),
cancel_all_btn = $('.fileupload-buttonbar .cancel', popup),
close_icon = $('.close', popup),
saving_tip = $('.saving-tip', popup);
var fu_status_ = {
'uploading': "{% trans "File Uploading..." %}",
'complete': "{% trans "File Upload complete" %}",
'canceled': "{% trans "File Upload canceled" %}",
'failed': "{% trans "File Upload failed" %}"
};
popup.fileupload({
fileInput: $('#upload-file2 input'),
paramName: 'file',
// customize it for 'done'
getFilesFromResponse: function (data) {
if (data.result) {
return data.result;
}
},
autoUpload:true,
{% if max_upload_file_size %}
maxFileSize: {{ max_upload_file_size }}, // in bytes
{% endif %}
maxNumberOfFiles: 500,
sequentialUploads: true
})
.bind('fileuploadadd', function(e, data) {
var files = e.target.files; // FileList
console.log(files[0].length);
popup.removeClass('hide');
cancel_all_btn.removeClass('hide');
close_icon.addClass('hide');
})
.bind('fileuploadstart', function() {
fu_status.html(fu_status_.uploading);
})
.bind('fileuploadsubmit', function(e, data) {
if (data.files.length == 0) {
return false;
}
var file = data.files[0];
var uu = data.files[0].webkitRelativePath;
if (!file.error) {
$.ajax({
url: '{% url 'get_file_op_url' repo.id %}',
cache: false,
data: {
'op_type': 'upload',
'path': cur_path,
'dir-structure':uu,
},
dataType: 'json',
success: function(ret) {
data.url = ret['url'];
data.formData = {parent_dir:cur_path+ret['path']}
data.jqXHR = popup.fileupload('send', data);
},
error: function() {
file.error = "{% trans "Failed to get upload url" %}";
}
});
return false;
}
})
.bind('fileuploadprogressall', function (e, data) {
total_progress.html(parseInt(data.loaded / data.total * 100, 10) + '% ').removeClass('hide');
//console.log(parseInt(data.loaded / data.total * 100, 10))
if (data.loaded > 0 && data.loaded == data.total) {
saving_tip.show();
}
})
.bind('fileuploadstop', function() {
})
// after tpl has rendered
.bind('fileuploadcompleted', function() { // 'done'
if ($('.files .cancel', popup).length == 0) {
saving_tip.hide();
total_progress.addClass('hide');
fu_status.html(fu_status_.complete);
}
//setTimeout(function() { location.reload(true); }, 4000);
})
.bind('fileuploadfailed', function(e, data) { // 'fail'
if ($('.files .cancel', popup).length == 0) {
cancel_all_btn.addClass('hide');
close_icon.removeClass('hide');
total_progress.addClass('hide');
saving_tip.hide();
if (data.errorThrown == 'abort') { // 'cancel'
fu_status.html(fu_status_.canceled);
} else { // 'error'
fu_status.html(fu_status_.failed);
}
}
});
});
});
就像上面这段代码里的回调函数里面的data
相关阅读:
SpringMVC ModelAndView中setViewName 返回页面名称是否大小写敏感
webpack设置了压缩,html也会被压缩,什么参数能排除html被压缩?
SQL筛选数据问题
时间过期的判断方式应该是怎样的
栅格系统是怎么设计的?
多次点击后,滚动事件问题~
Ubuntu 12.04下安装phpmyadmin报错如何解决
页游服务器端通信一般用什么框架
mysql实现查询表中不同字段重复记录的次数?
如何实现课程表的编辑功能,
为什么我这样给数组赋值然后return赋值后的数组是undefined
react lazyload,你们是怎么做的
前端模版引擎是如何实现的?
在迅雷下载不了viewer
C++ 两种代码写法的效率比较
6.0运行中的程序权限变化的时候要怎么处理。
在js开发中,如何减少if else语句的使用
请问webapp能否在后台运行。
NSFileHandle读取中文txt文件问题
让页面自动滚动页面顶部