Update dragster to support IE11 drag&drop

pull/13548/head
jesusbotella 7 years ago
parent 7f846d221b
commit 0a1fd63e4a

@ -1,19 +1,17 @@
(function() {
var Dragster,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
Dragster = (function() {
function Dragster(el) {
this.el = el;
this.dragleave = __bind(this.dragleave, this);
this.dragenter = __bind(this.dragenter, this);
if (this.supportsEventConstructors()) {
this.first = false;
this.second = false;
this.el.addEventListener("dragenter", this.dragenter, false);
this.el.addEventListener("dragleave", this.dragleave, false);
}
this.first = false;
this.second = false;
this.el.addEventListener("dragenter", this.dragenter, false);
this.el.addEventListener("dragleave", this.dragleave, false);
}
Dragster.prototype.dragenter = function(event) {
@ -21,13 +19,12 @@
return this.second = true;
} else {
this.first = true;
return this.el.dispatchEvent(new CustomEvent("dragster:enter", {
bubbles: true,
cancelable: true,
detail: {
dataTransfer: event.dataTransfer
}
}));
this.customEvent = document.createEvent("CustomEvent");
this.customEvent.initCustomEvent("dragster:enter", true, true, {
dataTransfer: event.dataTransfer,
sourceEvent: event
});
return this.el.dispatchEvent(this.customEvent);
}
};
@ -38,13 +35,12 @@
this.first = false;
}
if (!this.first && !this.second) {
return this.el.dispatchEvent(new CustomEvent("dragster:leave", {
bubbles: true,
cancelable: true,
detail: {
dataTransfer: event.dataTransfer
}
}));
this.customEvent = document.createEvent("CustomEvent");
this.customEvent.initCustomEvent("dragster:leave", true, true, {
dataTransfer: event.dataTransfer,
sourceEvent: event
});
return this.el.dispatchEvent(this.customEvent);
}
};
@ -53,15 +49,6 @@
return this.el.removeEventListener("dragleave", this.dragleave, false);
};
Dragster.prototype.supportsEventConstructors = function() {
try {
new CustomEvent("z");
} catch (_error) {
return false;
}
return true;
};
Dragster.prototype.reset = function() {
this.first = false;
return this.second = false;

Loading…
Cancel
Save