Разница между event.originalEvent.dataTransfer.files и event.dataTransfer.files в html 5

В чем разница между

event.originalEvent.dataTransfer.files

и

event.dataTransfer.files

???

Потому что при перетаскивании второй код не работает, и это undefined, и мне пришлось использовать первый код, потому что он работает!

Ответы

Ответ 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);