使用jquery fileupload单独取消上传

时间:2013-04-04 20:08:02

标签: jquery file-upload

如何中止特定文件的上传!我将jqXHR附加到上下文的data属性,然后我调用abourtUpload函数来搜索data属性,然后尝试中止它!但它没有用!

function abortUpload (e) {    
    e.preventDefault();
    var template = $(e.currentTarget).closest('.template-upload'),
    data = template.data('data') || {}; 
    console.log(data); // returns [Object object]
    data.jqXHR.abort(); // Cannot call method 'abort' of undefined 
}
// Method of fileupload
 add: function(e, data) {
      data.context = $(tmpl("template-upload", file)).attr('data-data', { jqXHR: data.submit() } );
      $('#fileupload').append(data.context);
      data.context.find('.cancel').click( abortUpload );
      return data.submit(); 
  }

任何想法的人? 米格尔。

1 个答案:

答案 0 :(得分:0)

您正在尝试将jqXHR对象存储为HTML数据属性值,这是不可能的 您只能将对象存储在可以序列化为JSON的HTML数据属性中。

你可以做的是使用jQuery的.data()方法来存储值,它允许存储任意对象。

但是,由于您的所有代码都采用相同的方法,因此您无需执行任何操作,因为您只需使用本地变量即可访问jqXHR对象并取消上传。 您也不需要设置data.context,因为它仅用于设置jQuery.ajax请求的上下文。

因此,以下代码段应该可以帮助您实现目标:

var jqXHR = data.submit(),
    node = $(tmpl("template-upload", file)).appendTo('#fileupload');
node.find('.cancel').click(function (e) {
    e.preventDefault();
    jqXHR.abort();
});