以编程方式添加图像时未触发 Dropzone "addedfile"

Dropzone "addedfile" is not fired when adding images programatically

我想将 checkbox 添加到 dropzone 图片,这样我就可以只上传选定的图片。当触发 addedfile 事件时,我将在每个图像旁边添加一个 checkbox

我正在使用以下方法programmatically add images to dropzone:

var mockFile = { name: "image.jpg", size: 12345 };
imgUrl = "http://example.com/image.jpg"
myDropzone.options.addedfile.call(myDropzone, mockFile);
myDropzone.options.thumbnail.call(myDropzone, mockFile, imgUrl);

问题是 "addedfile" 事件不会为以这种方式添加的图像触发:

myDropzone.on("addedfile", function(file) {
    console.log("file added!"); // this line is never printed
});

但如果通过手动单击 dropzone 并选择文件来添加图像,则会触发上述事件。为什么在第一种情况下没有触发此事件?

我遇到了同样的问题,并从@enyo 找到了答案: https://github.com/enyo/dropzone/issues/209

基本上 addedfile.call 有点笨拙,您需要将此行替换为以下内容:

myDropzone.emit("addedfile", file);

这样就可以正确调用 "addedfile" 函数了。

干杯

根据 dropzone documentation: 触发 addedfile 事件的正确方法是在实例化 dropzone 时在 init 部分调用它。

示例:

   Dropzone.options.myAwesomeDropzone = {
      init: function() {
       this.on("addedfile", function(file) { alert("Added file."); });
      }
   };

必须调用 myDropzone.options.addedfile.call(myDropzone, mockFile);在声明 "addedfile" 回调之后。

不要做我做的事并尝试监听 addedFile 事件而不是 addedfile (d'oh)。