var dropzone = new dropzone('#demo-upload', {
previewtemplate: document.queryselector('#preview-template').innerhtml,
paralleluploads: 2,
thumbnailheight: 120,
thumbnailwidth: 120,
maxfilesize: 3,
filesizebase: 1000,
thumbnail: function(file, dataurl) {
if (file.previewelement) {
file.previewelement.classlist.remove("dz-file-preview");
var images = file.previewelement.queryselectorall("[data-dz-thumbnail]");
for (var i = 0; i < images.length; i++) {
var thumbnailelement = images[i];
thumbnailelement.alt = file.name;
thumbnailelement.src = dataurl;
}
settimeout(function() { file.previewelement.classlist.add("dz-image-preview"); }, 1);
}
}
});
// now fake the file upload, since github does not handle file uploads
// and returns a 404
var minsteps = 6,
maxsteps = 60,
timebetweensteps = 100,
bytesperstep = 100000;
dropzone.uploadfiles = function(files) {
var self = this;
for (var i = 0; i < files.length; i++) {
var file = files[i];
totalsteps = math.round(math.min(maxsteps, math.max(minsteps, file.size / bytesperstep)));
for (var step = 0; step < totalsteps; step++) {
var duration = timebetweensteps * (step + 1);
settimeout(function(file, totalsteps, step) {
return function() {
file.upload = {
progress: 100 * (step + 1) / totalsteps,
total: file.size,
bytessent: (step + 1) * file.size / totalsteps
};
self.emit('uploadprogress', file, file.upload.progress, file.upload.bytessent);
if (file.upload.progress == 100) {
file.status = dropzone.success;
self.emit("success", file, 'success', null);
self.emit("complete", file);
self.processqueue();
//document.getelementsbyclassname("dz-success-mark").style.opacity = "1";
}
};
}(file, totalsteps, step), duration);
}
}
}
Если перед этим кодом запускать alert и console.log то все работает. Но сразу после определения dropzone начинается хаос. Перестают работать alert и console.log переменные определенные за функцией var dropzone глобально уже не достать. Да что уж говорить про функции логирования, никакие не работают вплоть до изменения текста в блоке. Что за?