Ответ 1
jQuery не передает вам объект события браузера, он передает объект события jQuery. Вы можете получить доступ к исходному объекту нетронутого события с помощью свойства .originalEvent
в объекте события jQuery. Затем вы можете действовать как обычно.
Итак, в коде:
Модель события jQuery:
$(document).on("drop dragend dragstart dragenter dragleave drag dragover", function(event) {
event.preventDefault();
if (event.type === "drop") {
alert(event.originalEvent.dataTransfer.files);
}
});
Модель событий W3C:
function preventDefault(event) {
event.preventDefault();
}
function alertFiles(event) {
alert(event.dataTransfer.files);
}
document.addEventListener("dragstart", preventDefault, false);
document.addEventListener("dragenter", preventDefault, false);
document.addEventListener("dragleave", preventDefault, false);
document.addEventListener("drag", preventDefault, false);
document.addEventListener("dragend", preventDefault, false);
document.addEventListener("dragover", preventDefault, false);
document.addEventListener("drop", preventDefault, false);
document.addEventListener("drop", alertFiles, false);