javascript - 无法在队列完成时检索 dropzone 节点?

标签 javascript jquery dropzone.js

我想检索已完成上传队列的 dropzone 节点(同一页面上有多个),但我遇到了困难

var dropzone = new Dropzone("#" + dz_id, {
                autoProcessQueue: true,
                url: url + endpointFileMgr,
                headers:{"APIKey":APIKey, "IndexUUID": Indexes[i].IndexUUID,"Cache-Control": "",},
                maxFilesize: 1024, //MB
                queuecomplete: function(e){
                    // alert("e innerHTML " + e.innerHTML); // No Alert, Console Error "Cannot read property 'innerHTML' of undefined"
                    //alert("e.target.innerHTML " + e.target.innerHTML); // No Alert, Console Error "Cannot read property 'target' of undefined"
                    alert ("this.innerHTML " + this.innerHTML); // Alert's 'this.innerHTML undefined'
                    alert("$(e).html()" + $(e).html()); // Alert's '$(e).html() undefined'
                    //alert("$(this).html()" + $(this).html()); // No Alert, Console Error "Cannot read property 'createDocumentFragment' of undefined"
                    //alert ("$(dropzone).html() " + $(dropzone).html()); // No Alert, Console Error "Cannot read property 'createDocumentFragment' of undefined"
                    alert(e.currentTarget.innerHTML); // No alert, "Cannot read property 'currentTarget' of undefined"
                }
            });

我正在循环中以编程方式创建多个 Dropzone,这就是为什么我将选项作为对象传递,而不是按照 Dropzone 文档中建议的事后访问的原因。

Dropzone Documentation建议所有事件都应该传递一个事件参数,根据我的理解,我应该能够从这个参数或从“这个”......或其他地方检索接收事件的节点,但我的理解似乎有缺陷.

有人可以向我解释一下,正确的方法是什么吗?

最佳答案

当您定义 queuecomplete 选项时,例如:

{
  // .....
  queuecomplete: function(e) {
    // ---
  }
}

在这种情况下,您要做的是覆盖 dropzone 在 queuecomplete 上的行为,除非您确实想这样做,否则您应该将自己的事件监听器附加到 queuecomplete 事件像这样:

var dropzone = new Dropzone("#" + dz_id, {
  autoProcessQueue: true,
  url: url + endpointFileMgr,
  headers: {
    APIKey: APIKey,
    IndexUUID: Indexes[i].IndexUUID,
    "Cache-Control": ""
  },
  maxFilesize: 1024, //MB
  init: function() {

    let thisDropzone = this;

    this.on("queuecomplete", function() {
      alert(thisDropzone.element.innerHTML);
    });
  }
});

关于javascript - 无法在队列完成时检索 dropzone 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50841685/

相关文章:

javascript - Node.js 机器人与 Cheerio

javascript - 如何在 Laravel 中的我的删除按钮上开发 javascript 按摩?

javascript - 添加类时的 JQuery OnClick 问题

javascript - 如何从列表中生成随机值及其结果?

javascript - 如何更改日期选择器中的 maxDate?

javascript - 将方法应用于变量

javascript - jQuery/js 可以帮助我确定 URL 是否存在

javascript - Dropzone.js 删除页面加载时创建的模拟文件时,默认添加文件消息显示

javascript - Dropzone.js 不再将多个 imgs 上传到 Android 上的网站