为什么 PreventDefault 不起作用?

2024-01-03

这是我的代码的一部分。 如果我尝试将图像放在块上,preventDefault 不起作用。

        jQuery(document).ready(function($) {
            $.event.props.push('dataTransfer');
            $('#imgDropzone').on({
                dragenter: function(e) {
                    $(this).css('background-color', '#ffd1ff');
                },
                dragleave: function(e) {
                    $(this).css('background-color', '');
                },
                drop: function(e) {
                    e.stopPropagation();
                    e.preventDefault();

                    var file = e.dataTransfer.files[0];
                    var fileReader = new FileReader();
                    var el = $(this);
                    fileReader.onload = (function(file) {
                        return function(event) {
                            alert(event.target.result);
                        };
                    })(file);
                    fileReader.readAsDataURL(file);
                }
            });
        });

http://jsfiddle.net/LrmDw/ http://jsfiddle.net/LrmDw/


You need* to prevent default for all the other drag events as well:

see http://jsfiddle.net/LrmDw/2/ http://jsfiddle.net/LrmDw/2/

$('#imgDropzone').on("dragenter dragstart dragend dragleave dragover drag drop", function (e) {
    e.preventDefault();
});

解释一下原始 jsfiddle 中不起作用的内容:

当您将文件拖放到拖放区域(或页面中的任何位置)时,浏览器的默认行为是导航离开并尝试解释该文件。如果你丢掉一个普通的 例如,如果有 txt 文件,浏览器将离开 jsfiddle 并显示 txt 文件的内容。这是在 Chrome 中。


顺便说一句,base64 url​​ 并不可取,因为它们会重复数据。只需获取指向文件的 blob 指针并使用它:

var file = e.dataTransfer.files[0];
var src = (window.URL || window.webkitURL).createObjectURL(file);
$("<img>", {src: src}).appendTo("body");

See

http://jsfiddle.net/LrmDw/3/ http://jsfiddle.net/LrmDw/3/

I don't know exactly which ones but I never had to care

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 PreventDefault 不起作用? 的相关文章

随机推荐

  • Pandas 过滤器计数

    我有一些数据按一秒间隔内的出现情况进行分组 我在寻找正确的方法来过滤掉低于特定阈值的计数时遇到问题 例如我不想显示计数低于 100 的任何内容 我尝试了各种版本的过滤器 lambda 构造 但我无法在调用 count 方法之前或之后进行过滤
  • 具有布尔值和多个参数的 python 多处理

    我有一个接受多个参数的函数 其中一些是布尔值 我正在尝试将其传递给多处理pool apply async并想要传递一些带有附加名称的参数 这是我正在使用的示例脚本 from multiprocessing import Pool def t
  • 如何将环境变量传递给docker-compose up

    我正在尝试运行一个容器 我已经将镜像上传到私有 Docker 注册表 我想编写一个撰写文件来下载和部署映像 但我想将标签名称作为变量从 docker compose run 命令传递 我的撰写文件如下所示 如何将 KB DB TAG VER
  • 是否可以升级 Angularjs 属性指令以在 Angular 4 中使用?

    我已经能够升级 AngularJS 元素指令以在 Angular 4 中使用 这是示例代码 myScores js angular module app components directives myScores directive my
  • PHP 上的无限循环的 Pthreads 与 Parallel

    我正在寻找一种在 PHP 上执行多线程的方法 并遇到了 pthreads PHP API 我认为它很容易实现 但是我必须找出如何安装支持 Debian 的 ZTS 的 PHP 版本 问题是 当我查看 pthreads php net 文档时
  • 查找8086微处理器中的物理地址

    在8086微处理器中 20位地址分为16位 4位地址 其中4位二进制是段地址 当我们将4位二进制转换为十六进制时 它会变成1位十六进制 我的问题是当我们遇到计算物理地址的问题时从逻辑地址上看 给出的是一个4bit的十六进制段地址 为什么会这
  • 如何验证 Perl 中的函数参数?

    你能告诉我 Perl 中验证函数参数最明智的方法是什么吗 代码片段 sub testfunction my args my value args gt value die no value set process value testfun
  • Redux 和 React Router:结合调度和导航 (history.push)

    我对如何使用 React Router 有点一无所知history push route with Redux 换句话说 如果你将一个组件与 Redux 的连接mapDispatchToProps 你怎么放history push rout
  • 为什么 Flowable 不是 Observable

    为什么 Flowable 不是 Observable Observable 接口几乎是 Flowable 的子集 它们的实现几乎相同 为什么他们不实现一个通用接口 以便我们可以直接将 Flowable 转换为 Observable 为什么
  • 正则表达式匹配由任何字符分组包围的可选组

    我正在尝试匹配一个可选组 该组前面和后面可以有任意数量的字符 整个模式也有必需的开始和结束匹配 但中间的匹配是可选的 我从这个开始 当需要中间组时它有效 string text blah blah foo This is a test bl
  • Python Google Drive API - 获取“我的云端硬盘”文件夹的 ID

    在 Python 3 中使用 Drive API 我正在尝试编写一个脚本来下载整个用户的 Google Drive 此代码来自 Drive API V3 文档 经过修改以搜索文件夹而不是文件 将获取用户拥有所有权的每个文件夹 包括团队驱动器
  • 如何在 JSDoc 中将参数标记为包含 DOM 节点?

    我想指示参数应该是 DOM 节点 但我似乎找不到任何有关如何使用 JSDoc 指示这一点的信息 我可以用 Object 但这相当难看 我宁愿有类似的东西 Node or DOMNode 但我找不到任何例子来指出我的方向 那么 如何将参数标记
  • BlueZ 在 DBUS 上显示旧的缓存数据

    我对 BlueZ 有一个非常奇怪的问题 Ubuntu 16 04 中的库存版本 5 37 我正在开发蓝牙外围设备 我只有一套开发套件 在其固件中 我更改了广播的名称 当我使用时 hcitool lescan 显示我的设备的更新名称 但是当我
  • 使用 Collections API 进行随机播放

    我感到非常沮丧 因为我似乎无法弄清楚为什么集合洗牌无法正常工作 可以说我正在尝试洗牌randomizer大批 int randomizer new int 200 300 212 111 6 2332 Collections shuffle
  • 在 PhoneGap+jQuery Mobile 中使用 ajax 的 CORS 无法在设备上运行,但可以在浏览器上运行

    因此 我正在使用 Phone Gap 和 jQuery mobile 构建一个应用程序 当使用 ajax 从白名单服务器获取 json 响应时 我收到错误响应 但是控制台中没有显示任何内容 奇怪的是 当在网络浏览器中测试该应用程序时 它工作
  • 使用 Mongoose 处理 MongoDB 中查找、修改、保存流程中的冲突

    我想更新一个涉及读取其他集合和复杂修改的文档 因此更新运算符findAndModify 不能达到我的目的 这是我所拥有的 Collection findById id function err doc read from other col
  • 如何将消息从 WH_KEYBOARD_LL 转换为 corespondig unicode char

    你好 我正在编写一个多语言应用程序 并且正在使用WH KEYBOARD LL钩 我不在乎为什么要使用钩子 我尝试了多种方法 但这是最简单 最快的方法 现在在钩子过程中 LRESULT CALLBACK LowLevelKeyboardPro
  • 在每个视图 IOS 的底部显示音乐播放器 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在创建一个 IOS 应用程序 我想在每个视图的底部显示音乐播放器实例 Like this image 采用一个基本视图控制器 它将以编程
  • 使用 Robolectric 进行 Android http 测试

    我有一个 Android 应用程序 其中应用程序的主要部分是 APIcalls java 类 我在其中发出 http 请求以从服务器获取数据并在应用程序中显示数据 我想为这个 Java 类创建单元测试 因为它是应用程序的大部分 从服务器获取
  • 为什么 PreventDefault 不起作用?

    这是我的代码的一部分 如果我尝试将图像放在块上 preventDefault 不起作用 jQuery document ready function event props push dataTransfer imgDropzone on