Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过单击外部模式触发dropzone取消事件_Javascript_Dropzone.js - Fatal编程技术网

Javascript 通过单击外部模式触发dropzone取消事件

Javascript 通过单击外部模式触发dropzone取消事件,javascript,dropzone.js,Javascript,Dropzone.js,我从事的一个项目使用了dropzonejsupload file组件。但是,我在努力使它更个性化的同时也面临着这个问题 如果您在模式窗口(引导模式)的之外的某个地方单击,则应触发dropzonejs取消按钮事件(警报/确认框,请参阅所附图片)。但事实并非如此,也从未在文件中看到任何相关内容 有什么解决办法吗?我用下面描述的这种非常手工和肮脏的方式来解决: 我曾经把我认为真实的东西做成一面旗帜。关键是,在上载过程成功结束后,请解除onbeforeunlad的绑定,以防止即使已完成,也始终询问“是

我从事的一个项目使用了
dropzonejs
upload file组件。但是,我在努力使它更个性化的同时也面临着这个问题

如果您在模式窗口(引导模式)的之外的某个地方单击,则应触发dropzonejs取消按钮事件(警报/确认框,请参阅所附图片)。但事实并非如此,也从未在文件中看到任何相关内容


有什么解决办法吗?

我用下面描述的这种非常手工和肮脏的方式来解决:

我曾经把我认为真实的东西做成一面旗帜。关键是,在上载过程成功结束后,请解除onbeforeunlad的绑定,以防止即使已完成,也始终询问“是否确实要取消此上载?”

var cancelConfirmation = "Are you sure you want to cancel this upload?";

var isFileInProgress = false;

var uploadZone = $("form[class=dropzone]").dropzone({
    method: "post",
    uploadMultiple: false,
    parallelUploads: 1,
    dictCancelUploadConfirmation: cancelConfirmation,
    success: function (file, response) {
        isFileInProgress = false;

        window.onbeforeunload = function () { };
    },
    init: function () {
        this.on("error", function (file, response) {
            isFileInProgress = false;

            window.onbeforeunload = function () { /* unbind */ };
        });

        this.on("addedfile", function () {
            isFileInProgress = true;

            window.onbeforeunload = function () {
                return cancelConfirmation;
            };
        });

        this.on("complete", function () {
            isFileInProgress = false;

            window.onbeforeunload = function () { /* unbind */ };
        });

        this.on("canceled", function () {
            isFileInProgress = false;

            window.onbeforeunload = function () { /* unbind */ };
        });
    }
});

$(".modal").on('hide.bs.modal', function (event) {
    if (isFileInProgress && !confirm(cancelConfirmation)) {
        event.preventDefault();
    }
});