在Ajax加载的表单中动态初始化dropzone.js

时间:2017-10-19 18:07:58

标签: javascript jquery ajax dropzone.js

我想在动态加载的表单中使用dropzone.js。这是我的实际代码。

实施源并将自动发现设置为false

<script src="scripts/dropzone.min.js"></script>
<script>
  Dropzone.autoDiscover = false;
</script>

我使用jquery加载表单

$.ajax({
  method: "GET",
  url: "form.php",
  data: { user_id: userId }
}).done(function( result ) {
  $( ".user-details-"+userId ).append( result );
  var myDropzone = new Dropzone("div.dropzone", {
    url: "imageupload.ajax.php",
  });
});

将ajax-call的html-result附加到我的div.user-details之后,dropzone可以正常工作。但是当我关闭Form(从dom中移除)并再次加载它时,我收到错误“Dropzone已经附加”。在我的控制台中。

如果我更改初始化并使用具有唯一ID的div,则此错误也会出现。

从dom中删除表单后如何销毁掉区?

2 个答案:

答案 0 :(得分:1)

问题是您正在使用类选择器div.dropzone

所以你应该检查这个类是否存在...&amp;如果存在,它是否已经包含一个dropzone ..将其清空$(&#39; div.dropzone&#39;)。empty();

另一种方法是使用动态ID

  var myDropzone = new Dropzone("div#dropzone", {

答案 1 :(得分:0)

var element = document.getElementById("#Your-DropZone-Element")
if (element.dropzone) {
    element.dropzone.destroy();
}