我已经能够确认个别删除,但ui工具栏中的.delete按钮似乎只是为所有选定项目运行删除点击。
我真正想要做的是在此上下文中禁止我对单个项目的删除提示,并为所选项目数组提示一次(理想情况下列出单个文件的文件名)。我的个人覆盖如下:
$('#fileupload').bind('fileuploaddestroy', function (e, data) {
var filename = data.url.substring(data.url.indexOf("=") + 1,data.url.indexOf("&"))
var delconf = confirm("Delete the file \"" + decodeURIComponent(filename) + "\"?");
if(!delconf) {
e.preventDefault;
return false;
}
});
我甚至不确定是否有特定事件要覆盖多次删除,或者我将如何找到它,因此对这些主题的任何建议也会有所帮助。
答案 0 :(得分:1)
到目前为止,我的答案是使用 _initButtonBarEventHandlers 函数中的以下代码修改jquery.fileupload-ui.js:
this._on(fileUploadButtonBar.find('.delete'), {
click: function (e) {
if(this._trigger('multiDestroy')){
if (e.isDefaultPrevented()) {
return false;
}
e.preventDefault();
filesList.find('.toggle:checked')
.closest('.template-download')
.find('.delete').click();
fileUploadButtonBar.find('.toggle')
.prop('checked', false);
this._trigger('multiDestroyFinished');
}
}
});
大约第381行的空白回调:
// Callback for multiple file deletion:
multiDestroy: function (e) {},
// Finished callback for multiple file deletion:
multiDestroyFinished: function (e) {}
我的内联代码如下所示:
var multiDel = false;
$('#fileupload').on('fileuploaddestroy', function (e, data) {
if(multiDel){ return true; };
var filename = data.url.substring(data.url.indexOf("=") + 1,data.url.indexOf("&"))
var delconf = confirm("Delete the file \"" + decodeURIComponent(filename) + "\"?");
if(!delconf) {
e.preventDefault;
return false;
}
});
$('#fileupload').fileupload({
multiDestroy: function (e) {
var delconf = confirm("Are you sure you wish to delete the selected files?");
if (!delconf) {
e.preventdefault;
return false;
} else {
multiDel = true;
}
}
})
.fileupload({
multiDestroyFinished: function (e) {
multiDel = false;
}
});
我不会说我对这个答案感到非常满意,部分原因是因为在if块中包含click函数似乎很脏,部分原因是因为我正在重写Sebastian的插件而不是扩展它。我不太可能接受我的答案,所以如果其他人有更好的答案,请带上它!