处理程序从另一个函数中获取变量值

时间:2012-03-02 20:48:30

标签: javascript jquery

这是我到目前为止所拥有的

//file uploader 
///////////////////////////
function uploader(){
    var file = $(this).val()
    var error = $(this).next('.req-error')
    var fileLimit = $(this).attr('maxlength')-1
    var uploadedFiles = $(this).siblings('.uploaded-file').length 

    //make uploaded file label
    if(error.length ==1){
        $(this).next().after('<div class="uploaded-file"><span>X</span>'+file+'</div>')
    }else {
        $(this).after('<div class="uploaded-file"><span>X</span>'+file+'</div>')
    }

    //count uploaded files
    if(uploadedFiles >= fileLimit ){
        $(this).attr('disabled', true)
    }else{
        $(this).removeAttr('disabled')
    } 

    //clear input field
    $(this).val('')
}; 
$(".input-file").change(uploader)

function removeFile(uploader){
    $(this).remove()

}
$('.uploaded-file').live('click',removeFile)

我限制了可以上传的文件数量。达到限制后,输入将被禁用,但是,当文件被删除时,如果文件超出限制,我希望它再次启用。我只是不确定如何让removeFile函数从上传器函数中读取if语句。

1 个答案:

答案 0 :(得分:0)

最好有一个代表已上传文件数量的计数器。将它放在与您的上传器和放大器相同的var中。 removeFile函数:

var uploadedFiles = 0;

function uploader() {
    ...
}

function removeFile() {
    ...
}

然后在添加/删除文件时递增/递减此变量。