diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 8b451e44..9051284e 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -324,25 +324,25 @@ var Util, DOM, CloudCmd; } function dragndrop() { - var panels = DOM.getByClassAll('panel'), - i = 0, - n = panels.length, + var panelsEl = DOM.getByClassAll('panel'), + panels = Util.slice(panelsEl), preventDefault = function (event) { event.preventDefault(); }, toggle = function () { - for (i = 0; i < n; i++) - DOM.toggleClass(panels[i], 'selected-panel'); + panels.forEach(function(panel) { + DOM.toggleClass(panel, 'selected-panel'); + }); }, onDrop = function (event) { - var file, files, + var filesData, files, func = CloudCmd.refresh, dir = Info.dirPath, load = function(file, callback) { var Images = DOM.Images, name = file.name, path = dir + name; - + Images.showLoad({top: true}); Images.setProgress(0, name); @@ -352,13 +352,13 @@ var Util, DOM, CloudCmd; preventDefault(event); toggle(); - files = event.dataTransfer.files; - n = files.length; - if (n) { - for (i = 0; i < n; i++) { - file = files[i]; + filesData = event.dataTransfer.files; + files = Util.slice(filesData); + + if (files.length) { + files.forEach(function(file) { func = Util.bind(load, file, func); - } + }); func(); } @@ -366,10 +366,10 @@ var Util, DOM, CloudCmd; Events.add(['dragenter', 'dragleave'], toggle); - for (i = 0; i < n; i++) { - Events.add('dragover', preventDefault, panels[i]); - Events.add('drop', onDrop, panels[i]); - } + panels.forEach(function(panel) { + Events.add('dragover', preventDefault, panel); + Events.add('drop', onDrop, panel); + }); } function unload() {