【问题标题】:difference between event.originalEvent.dataTransfer.files and event.dataTransfer.files in html 5html 5 中 event.originalEvent.dataTransfer.files 和 event.dataTransfer.files 之间的区别
【发布时间】:2012-08-09 14:40:02
【问题描述】:

有什么区别

event.originalEvent.dataTransfer.files

event.dataTransfer.files

???

因为在拖放中,第二个代码不起作用并且它是未定义的,我不得不使用第一个代码,因为它可以工作!

【问题讨论】:

    标签: jquery html drag-and-drop


    【解决方案1】:

    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 声望”为什么?! :(
    • @user1574766 好吧,一个人需要 15 声望才能开始投票。你目前有 11 个声望。
    • @peyman gilmour 如果对您有帮助,您应该接受答案(此操作没有限制)
    • 我遇到了确切的问题,虽然我设法在互联网上找到了有关 .originalEvent 的信息,但这最终为我解释了它。太赞了!
    猜你喜欢
    • 2020-09-12
    • 2018-11-16
    • 2019-11-17
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2015-01-25
    相关资源
    最近更新 更多