关于前端click事件的坑

对于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 + '%'
                );
            }
        });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值