Я использую dropzone как плагин jquery, поэтому я не использовал экземпляр.
var myDropzone = new Dropzone("div#myId", { url: "/file/post"});
Я использовал этот метод.
$("div#myId").dropzone({ url: "/file/post" });
Но мне нужно это сделать:
myDropzone.emit("addedfile", jsonFile);
я пробовал
$("div#myId").emit("addedfile", jsonFile);
и я пробовал
var myDropzone= $("div#myId").dropzone({ url: "/file/post" });
myDropzone.emit("addedfile", jsonFile);
Я чувствую, что это одна из основных явлений в моем понимании того, как эти вещи работают, поэтому объяснение моей ошибки также будет высоко оценено.
Большое спасибо,
Павел
Dropzone.forElement("div#myId").emit("addedfile", jsonFile);
Dropzone.forElement("#myId").emit("addedfile", jsonFile);
Я получаю: TypeError: Аргумент 1 Node.appendChild не является объектом. Есть идеи?
var myDropzone = Dropzone.forElement("myId");
объекту: var myDropzone = Dropzone.forElement("myId");
Затем используйте консольный журнал, чтобы увидеть, правильно ли он его присваивает, и затем работайте оттуда.
Я создал такую функцию:
function foo(dz) {
var jsonFile = {name: 'moo', size: 10}
dz.emit('addedfile', jsonFile)
}
И назвал это так:
$('#mydrop').dropzone({
url: '/foo/bar',
init: function() {
var dz = this
foo(dz)
}
})
И тогда я смог испускать события изнутри foo()
Посмотрите на enyo комментарий к jQuery instancing: Доступ к объекту Dropzone.