Blueimp文件上传:我的DELETE链接不起作用

时间:2015-03-13 15:47:49

标签: jquery jquery-file-upload blueimp

这是我的表格(基本上传):

<span class="btn btn-success fileinput-button">
    <span>Select files...</span>
    <input id="fileupload" type="file" name="files[]" multiple>
</span>
<br>
<div id="files" class="files"></div>

这是我的剧本:

$(function () {
    $('#fileupload').fileupload({
        url: 'server/php/',
        dataType: 'json',
        add: function (e, data) {
            data.context = $('<p/>').text('Uploading...').appendTo('#files');
            data.submit();
        },
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p/>').html('<a href="#" class="text-danger delete" data-type="' + file.deleteType + '" data-url="' + file.deleteUrl + '" title="Delete">Delete</a>').appendTo('#files');
            });
        }
    });
});

我的上传没问题但是当我点击DELETE链接时,没有任何反应。看来这个链接没有效果。也许我错过了包含的东西?

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

除非我遗漏了某些内容,否则你没有在链接上设置事件监听器。

$('#files').on('click', 'a', function (e) {
  e.preventDefault();

  var $link = $(this);

  var req = $.ajax({
    dataType: 'json',
    url: $link.data('url'),
    type: 'DELETE'
  });

  req.success(function () {
    $link.closet('p').remove();
  });
});

答案 1 :(得分:0)

您可能已经解决了问题,但只是为任何新的解决方案寻求者添加了答案。

您不需要像@rglyall那样手动发出删除请求,只需正确设置html结构,Jquery-file-upload就会自行处理。

更改

<a href="#" class="text-danger delete" data-type="' + file.deleteType + '" data-url="' + file.deleteUrl + '" title="Delete">Delete</a>

<button href="#" class="text-danger delete" data-type="' + file.deleteType + '" data-url="' + file.deleteUrl + '" title="Delete">Delete</button>

你需要确保库中存在以下内容才能自动处理这个问题,即

  1. Html元素必须是'button'。
  2. 此按钮必须包含“删除”类。
  3. 此按钮必须具有“数据类型”。
  4. 此按钮必须具有'url-url'。