Skip to content

Commit 2a9ae36

Browse files
committed
cancel brief removal of the dragover class when the event target changes
1 parent 3f8fe58 commit 2a9ae36

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

demo/war/js/angular-file-upload.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,18 @@ angularFileUpload.directive('ngFileDropAvailable', [ '$parse', '$http', '$timeou
150150
angularFileUpload.directive('ngFileDrop', [ '$parse', '$http', '$timeout', function($parse, $http, $timeout) {
151151
return function(scope, elem, attr) {
152152
if ('draggable' in document.createElement('span')) {
153+
var cancel = null;
153154
var fn = $parse(attr['ngFileDrop']);
154155
elem[0].addEventListener("dragover", function(evt) {
156+
$timeout.cancel(cancel);
155157
evt.stopPropagation();
156158
evt.preventDefault();
157159
elem.addClass(attr['ngFileDragOverClass'] || "dragover");
158160
}, false);
159161
elem[0].addEventListener("dragleave", function(evt) {
160-
elem.removeClass(attr['ngFileDragOverClass'] || "dragover");
162+
cancel = $timeout(function() {
163+
elem.removeClass(attr['ngFileDragOverClass'] || "dragover");
164+
});
161165
}, false);
162166
elem[0].addEventListener("drop", function(evt) {
163167
evt.stopPropagation();

dist/angular-file-upload.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,18 @@ angularFileUpload.directive('ngFileDropAvailable', [ '$parse', '$http', '$timeou
150150
angularFileUpload.directive('ngFileDrop', [ '$parse', '$http', '$timeout', function($parse, $http, $timeout) {
151151
return function(scope, elem, attr) {
152152
if ('draggable' in document.createElement('span')) {
153+
var cancel = null;
153154
var fn = $parse(attr['ngFileDrop']);
154155
elem[0].addEventListener("dragover", function(evt) {
156+
$timeout.cancel(cancel);
155157
evt.stopPropagation();
156158
evt.preventDefault();
157159
elem.addClass(attr['ngFileDragOverClass'] || "dragover");
158160
}, false);
159161
elem[0].addEventListener("dragleave", function(evt) {
160-
elem.removeClass(attr['ngFileDragOverClass'] || "dragover");
162+
cancel = $timeout(function() {
163+
elem.removeClass(attr['ngFileDragOverClass'] || "dragover");
164+
});
161165
}, false);
162166
elem[0].addEventListener("drop", function(evt) {
163167
evt.stopPropagation();

dist/angular-file-upload.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)