对于click事件的绑定,一直是绑定下就可以了,但是在用jquery fileupload插件做文件上传的时候,每选择一次文件就会触发add属性对应的函数,导致多次绑定了click时间,一直多次调用后台上传文件,怎么查都找不到原因,最后才发现多次绑定click事件后,全部都会执行,而不是只执行最后一个click方法,记录下,以免以后被坑
$(this).fileupload({
url:WWWROOT+"/admin/fasdfs/upload",
add: function (e, data) {
var objClass = tdObj.find('input[type="text"]').attr('class');
if(objClass.indexOf('required') > -1){
tdObj.find('input[type="text"]').addClass('fileId');
}
tdObj.find('a.fileBtn').removeClass('disabled').removeAttr('disabled');
tdObj.find('a.fileBtn')
.click(function () {
tdObj.find('a.fileBtn').addClass('disabled').attr('disabled','disabled');
if(disableBtn) {
$(disableBtn).attr('disabled', 'disabled');
}
if(loadingImage) {
$(loadingImage).show();
}
fileData.submit();
});
if(addFileCallBack){
addFileCallBack();
}
},
done: function (e,data) {
var result = data.result[0].body ? data.result[0].body.innerText : data.result;
if(data.result[0].body){
result = eval('('+data.result[0].body.innerText+')');
}else{
result = eval('('+eval(data.result)+')');
}
if(!result || !result.result || !result.result.fileId || result.result.fileId == ''){
bootbox.alert('文件上传失败!');
$(this).parent('span').parent('td').find('.progress .progress-bar').css('width',0);
$(this).parent('span').parent('td').find('input[type="text"]').attr('value','');
$(this).parent('span').parent('td').find('input[type="text"]').attr('fileSize','');
$(this).parent('span').find("span.filename").find('input[type="text"]').attr('filetypevalue','');
}else {
if(sucessCallBack){
sucessCallBack(result);
}
$(this).parent('span').parent('td').find('input[type="text"]').attr('fileidvalue',result.result.fileId);
$(this).parent('span').parent('td').find('input[type="hidden"]').attr('value', result.result.fileId);
}
if(disableBtn) {
$(disableBtn).removeAttr('disabled');
}
if(loadingImage) {
$(loadingImage).hide();
}
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$(this).parent('span').parent('td').find('.progress .progress-bar').css(
'width',progress + '%'
);
}
});