jQuery不会将浏览器事件对象传递给您,它会传递jQuery event object。您可以通过jQuery事件对象中的.originalEvent
属性访问原始未触及的事件对象。然后你可以照常进行。
,这样,代码:
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);
感谢ü这么多的重播!我知道了;)...我想投你的答案,但它说“投票要求15声望”为什么?! ( – 2012-08-09 14:48:20
@ user1574766好吧,需要15个声望才能启动upvoting答案。你目前有11个声望。 – Esailija 2012-08-09 14:48:55
谢谢。我完成了:) – 2012-08-09 14:56:46