Javascript Dropzone:绑定到init

Javascript Dropzone:绑定到init,javascript,jquery,file-upload,dropzone.js,jquery-events,Javascript,Jquery,File Upload,Dropzone.js,Jquery Events,我继续将现有文件模拟为支持Dropzone的表单,但在连接到init函数时遇到了问题。以下是我目前掌握的情况: var imageUpload; if ($('.js-listing__images-upload').length) { imageUpload = new Dropzone('.js-listing__images-upload', { addRemoveLinks: true, maxFiles: 5, maxFilesize: 3, ac

我继续将现有文件模拟为支持Dropzone的表单,但在连接到
init
函数时遇到了问题。以下是我目前掌握的情况:

var imageUpload;

if ($('.js-listing__images-upload').length) {
  imageUpload = new Dropzone('.js-listing__images-upload', {
    addRemoveLinks: true,
    maxFiles: 5,
    maxFilesize: 3,
    acceptedFiles: 'image/jpeg,image/png,image/gif'
  });
  imageUpload.on('init', function() {
    var listingID, thisDropzone;
    console.log('dropzone init');
    thisDropzone = this;
    listingID = $('#manage-images').data('listing');
    $.ajax({
      url: dashboard.images.list,
      data: {
        listing: listingID
      },
      success: function(data) {
        console.log('ajax for list done');
        $.each(data, function(key, value) {
          var mockFile;
          mockFile = {
            name: value.name,
            size: value.size
          };
          thisDropzone.options.addedfile.call(thisDropzone, mockFile);
          thisDropzone.options.thumbnail.call(thisDropzone, mockFile, '/uploads/thumb/listings/' + value.name);
        });
      }
    });
  });
}
我的
console.log()
中没有一个出现问题,但我不确定问题出在哪里。在Dropzone的配置之后,我应该能够使用机制上的简单
钩住事件。谢谢大家

更新 以下方法确实有效:

# When images are removed
# Dropzone
imageUpload.on 'removedfile', (file) ->
  if file.xhr
    imageID = JSON.parse file.xhr.response
    $.ajax
      url: dashboard.images.destroy
      data: { image: imageID }
      success: () ->
  return

因此,我对
init
函数有些问题。

可以将
init
函数直接绑定到新的Dropzone实例化:

if $('.js-listing__images-upload').length
  imageUpload = new Dropzone(
    '.js-listing__images-upload',
    addRemoveLinks: true
    maxFiles: 5
    maxFilesize: 3
    acceptedFiles: 'image/jpeg,image/png,image/gif'
    init: ->
      thisDropzone = this
      $.ajax
        url: dashboard.images.list
        data: { listing: $('#manage-images').data('listing') }
        success: (data) ->
          $.each data, (key, value) ->
            mockFile =
              name: value.name
              size: value.size
            thisDropzone.options.addedfile.call thisDropzone, mockFile
            thisDropzone.options.thumbnail.call thisDropzone, mockFile, '/uploads/thumb/listings/' + value.name
            return
          return
      return
  )

什么是
$('.js-listing__images-upload')。长度
计算为?另外,运行此代码时DOM准备好了吗?这是否在您的
$(function(){//code here})
?Hi@arjabbar我对
.js-listing\uuu images-upload
的检查结果为true;所以我们在那里很好。我把所有的东西都包装在一个自我包装的匿名函数中。使用它有什么问题吗?谢谢