如何销毁fineuploader实例并使用jquery创建一个新的?

时间:2014-03-19 16:19:21

标签: fine-uploader

我在文件上传器按钮上方有一个下拉列表,如果下拉列表的值是音频或视频,则想上传到S3,如果下拉列表的值为pdf,doc或ppt,则想上传到我的服务器。我该如何实现呢?

$( '#fileType').change(function() {
    lessonType = $('#fileType').val();
    if(lessonType == 'audio' || lessonType == 'video') {
       $('#fileupload').fineUploaderS3(...);
    } else {
       $('#fileupload').fineUploader(...);
    } 
})

上面没有工作,所以想在分配fineuploader或fineuploaderS3之前删除实例。请让我知道如何销毁fineuploader实例。

感谢。

2 个答案:

答案 0 :(得分:2)

假设您没有添加与特定上传器关联的额外元素,那么您可以使用$("#fileupload").empty()在呈现/实例化上传者的其他实例之前从页面中删除上传者的DOM内容。

$( '#fileType').change(function() {
    lessonType = $('#fileType').val();
    if(lessonType == 'audio' || lessonType == 'video') {
       $('#fileupload').reset();
       $('#fileupload').empty();
       $('#fileupload').fineUploaderS3(...);
    } else {
       $('#fileupload').reset();
       $('#fileupload').empty();
       $('#fileupload').fineUploader(...);
    } 
});

jQuery's empty() documentation

答案 1 :(得分:1)

我必须这样做,在我的情况下,.reset()不存在以清除事件。我能够使用jquery的.unbind()并且工作得很好:

$('#fine-uploader').unbind().empty()