在 HTML5 中拖放的 JavaScript

2023-12-24

尝试在 HTML5 中执行一个简单的拖放示例 - 但是当我将图像放入 div 元素中时,出现以下错误。

未捕获的类型错误:无法将属性“innerHTML”设置为 null

所以我假设错误消息意味着dragElement为空。我不明白为什么,因为我在dragstart事件中将其设置为img元素的HTML。

有人知道如何进行这项工作吗?

var dragElement = null;

$('#x').bind('dragstart', function (e) {
    dragElement = this;
    e.dataTransfer.effectAllowed = 'move';
    e.dataTransfer.setData('text/html', this.innerHTML);
});

$('#drop-box').bind('dragover', function (e) {
    e.preventDefault();
    return false;
});

$('#drop-box').bind('drop', function (e) {
    e.preventDefault();
    if (e.stopPropagation) {
        e.stopPropagation();
    }

    if (dragElement != this) {
        dragElement.innerHTML = this.innerHTML;
        this.innerHTML = e.originalEvent.dataTransfer.getData('text/html');
    }

    return false;
});

dataTransfer是原始事件对象的一部分,而不是 jQuery 的一部分。使用e.originalEvent反而:http://jsfiddle.net/KWut6/ http://jsfiddle.net/KWut6/.

 e.originalEvent.dataTransfer ...

HTML

<image src="http://lorempixum.com/100/100/" draggable="true" id="x">
<div id="drop-box">a</div>

JavaScript

var dragElement = null;

$('#x').bind('dragstart', function (e) {
    dragElement = this;
    e.originalEvent.dataTransfer.effectAllowed = 'move';
    e.originalEvent.dataTransfer.setData('text/html', this.innerHTML);
});

$('#drop-box').bind('dragover', function (e) {
    e.preventDefault();
    return false;
});

$('#drop-box').bind('drop', function (e) {
    e.preventDefault();
    if (e.stopPropagation) {
        e.stopPropagation();
    }

    if (dragElement != this) {
        dragElement.innerHTML = this.innerHTML;
        this.innerHTML = e.originalEvent.dataTransfer.getData('text/html');
    }

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

在 HTML5 中拖放的 JavaScript 的相关文章

  • 是否可以加载本地版本的 JavaScript 文件而不是服务器版本?

    只是有一个简单的问题要抛出 看看是否有解决方案 假设我无法访问服务器 我加载一个网页 发现他们有一个从子文件夹加载的 Javascript 文件 比方说 scripts js some js 现在 我想在本地对此文件进行更改 并针对整个站点
  • 在 Bootstrap 3 中的工具提示中添加换行符

    我正在使用 Bootstrap 3 并向我的 div 添加了一个工具提示 我尝试过使用 n 和 创建新行 Bootstrap 会阻止我吗 div class content show tooltip 你需要添加data html true
  • 为什么将 Backbone.js 与 Rails 结合使用? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 解密签名并验证 JWT

    我知道还有其他库可以让我更轻松地使用 JWT 在 Node js 中 在本例中 我使用 crypto js 以手动方式学习 JWT 以下给了我令牌 var header alg HS256 typ JWT var wordArrayHead
  • svg路径指针事件-点击检测

    我正在编写一些 HTML 以便可以使用 HTML SVG 和 PATH 标签绘制贝塞尔曲线 我的曲线效果非常好 现在我想添加一项功能 如果用户将鼠标悬停在曲线上 我会更改颜色 但实际情况是 SVG 创建了一个包含路径的大框 并捕获所有点击
  • fancybox - 如何添加打开图像的链接?

    大伙计们有什么想法吗 我正在尝试链接 fancybox 中打开的图像 我到处都找遍了 听起来很简单 这是我正在使用的代码 a href img src example thumb png alt example a
  • 如何在phonegap中同时使用相机API选择多个图像?

    如何同时选择或拾取多个图像phonegap camera API使用时Camera DestinationType FILE URI 我一次只能选择一张图像 我可以使用以下命令在 SD 卡中选择多个文件 包括 txt pdf this ht
  • 使用 CSS 网格布局跨越所有列/行的项目

    随着 CSS 网格布局模块很快在 Firefox 和 Chrome 中发布 我想我应该尝试了解如何使用它 我尝试用一 个项目创建一个简单的网格a跨越所有行的左侧 其他项目 b c d e等 跨越各个行的右侧 跨越行右侧的项目数量是可变的 因
  • 我想在使用 Jest Snapshots 时获得图像文件名/路径

    我已经开始使用Jest https facebook github io jest 在一个新项目中有很多 我现在正在使用Snapshot https facebook github io jest docs tutorial react h
  • 使用 Firefox 插件发出跨域 ajax 请求

    我对如何在 Firefox 插件中发出跨域 ajax 请求感到有点困惑 LastPass 和 Xmarks 等插件建议你可以做到这一点 但是当我尝试用 google 搜索你是如何做到这一点时 每个人似乎都说你不能 除非用户在 Firefox
  • SVG 沿圆弧添加文本

    我正在尝试绘制 SVG 径向饼图 如下所述 色卡 https stackoverflow com a 18210763 1395178 现在我尝试将文本与圆弧一起添加到每个切片 我试图展示Text 1具有与 M 和 A 值完全相同的 x y
  • 动态添加项目到放大弹出画廊

    有没有办法动态添加图库项目华丽的弹出窗口 http dimsemenov com plugins magnific popup 那已经开放了 或更新当前项目 找不到关于 in 的任何内容插件文档 http dimsemenov com pl
  • Angular JS:当我们已经有了具有作用域的指令控制器时,指令的链接函数需要什么?

    我需要对范围和模板执行一些操作 看来我可以在以下任何一个中做到这一点link函数或controller函数 因为两者都可以访问该范围 什么时候我必须使用link功能而不是控制器 angular module myApp directive
  • PhoneGap文件传输错误1、哪里写FileTransfers?

    相关 https stackoverflow com questions 21044197 download file and store them locally in sdcard using phonegapbuild https s
  • Javascript:如何过滤对象数组并对结果求和

    我有一个对象数组 var example a 1 b 2 c 3 a 4 b 5 c 6 a 7 b 8 c 9 我正在尝试添加所有不对应的值c 我已经设法用 console log test filter x gt x c gt 3 过滤
  • javascript:新日期,缺少年份

    我打电话给 new Date Jan 4 发现默认年份是2001年 a new Date Jan 4 Thu Jan 04 2001 00 00 00 GMT 0500 EST 有什么办法可以将默认年份设置为 2011 年吗 更新 我知道我
  • 将 ERB 与 Handlebars 模板结合使用

    我有一个使用 ajax 创建新标签的模式 它使用 Tags 参数执行 POST 方法 而无需重新充电视图 因此 我希望根据所选的 price type 参数来呈现一个或另一个价格 div 我使用 Handlebars 所以我想这不是 rub
  • HTML 和 CSS 的基本编码标准 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道它们是否是像 PSR 01 这样的 HTML 和 CSS 基本编码标准 我尝试谷歌搜索和搜索 但没有找到 我建议看看类似的东西
  • 在不调用“then”的情况下解决 Promise

    我有这段代码 它是我为一个名为 Poolio 的 NPM 模块编写的小型 API 的一部分 对于那些支持错误优先回调和承诺的人来说 我遇到的问题似乎是一个常见问题 我们如何在支持两者的同时保持一致的 API 和 API 的一致返回值 例如
  • 如何在JAVascript中删除具有相同ID但display='block'和display='none'的div

    我有超过 1 个 div 具有相同的 id 但其中一个具有 display block 和其他人有显示 无 我想删除所有具有 display none 的 div 请告诉最简单的方法 文档中多个元素具有相同的 id 是违反 W3 标准的 请

随机推荐

  • 部署 Java WAR 文件时出错:严重:修复上下文的 docBase 时出现异常

    我已经解决了这个问题 但它可能会帮助那些偶然发现这个问题的人 过去 Stackoverflow 在看似晦涩难懂的 IT 问题上为我节省了无数时间 这是我在 Windows 上将 WAR 文件部署到 Tomcat 时遇到的错误 WAR 文件是
  • 如何自定义格式化程序 JFormattedTextField 来显示 IP 地址?

    我一直在尝试定制JFormattedTextField显示输入 IP 地址的掩码 我读了javadoc 然后尝试了 但在很多情况下它是无效的 我找到了一些关于此的文章 他们使用正则表达式来格式化值 但他们不显示用于输入 IP 的掩码 我想在
  • Docker:通过 IP 地址引用注册表

    我有一个 Docker 镜像 我想推送到我的注册表 托管在localhost I do docker push localhost 5000 my image 并且工作正常 但是 如果我标记图像并通过以下方式推送它 docker push
  • android studio - proguard.cfg 文件丢失

    我想最小化 apk文件 所以我遵循 Android 开发人员指南 http developer android com tools help proguard html http developer android com tools he
  • 使用 Java 反射是不好的做法吗?

    我正在为客户构建一个应用程序 我所处的情况是我需要能够通过字符串引用字段值 即用户使用字符串来定义他们想要更改哪个字段的值 这是抽象框架的一部分 因此从技术上讲 我不知道他们想要更改的字段的名称 当然 我可以使用哈希映射来做到这一点 但我正
  • 嵌入的 Facebook 帖子在 UIWebView 中无法正确显示

    我正在尝试显示 facebook 嵌入的帖子UIWebView 我从 facebook 开发者门户获取示例代码并将其加载到UIWebView 并且只看到空白屏幕 然后我把这段代码放在本地html文件中并在Chrome中打开它 仍然什么都没有
  • 在控制器中创建一个 link_to

    我需要将通知从控制器传递给视图 并且我希望是否可以创建一些指向该通知的链接 我的控制器 format html redirect to purchase order headers path notice PO already has RR
  • 两个不同子类扩展同一个实体实例时的 Doctrine 继承策略

    我正在开发一个用于管理法庭口译员服务的应用程序 使用 Doctrine 和 Zend Framework 2 有很多人参与其中 他们具有各种专门的角色 因此有一个 Person 超类和子类 类层次结构在垂直意义上并不复杂 一代继承就足够了
  • 静默接受 .pfx 证书

    这样的问题 我需要在我的安装 WiX 3 5 中导入 pfx证书 我需要接受导入它们而无需任何 用户交互 甚至接受 对于构建服务器和测试市场的测试需要如此 尝试了标准 WiX 解决方案 使用WiXIISExtension 但没有安静 静默
  • 如何关闭 DatePicker 中的 CalendarView?

    在我的设置屏幕上 我有一个日期选择器小部件 在 Eclipse 的设计器中 它按照我想要的方式显示 D M Y 有 3 个旋转器 但是当我在设备上测试时 我得到一个相当奇怪的视图 左侧有一个侧面旋转器 右侧有一个日历 以前从未见过这个 但做
  • 在 Maven 存储库中托管 IBM MQ 的约定是什么?

    我们在应用程序中使用 IBM MQ 8 0 0 4 因此我们计划将 jar 托管在我们的 Maven 存储库管理器中 在本例中为 Nexus OSS 2 IBM MQ 的 GAV 具体约定是什么 所需的罐子是 commonservices
  • 为什么 java 抱怨 jar 文件有很多条目?

    我偶然发现了以下问题 当我创建时 jar文件包含超过 65k 条目 java 抱怨 无效或损坏的 jarfile 例子 in fresh dir for i in 1 70000 do touch i done jar cf app jar
  • 了解一次性物品

    我查过类似这样的问题 即使我发现了很多问题 但其中任何一个都为我解决了这个问题 假设我有这段代码 public class SuperObject IDisposable public void Dispose Dispose true G
  • 检查远程计算机中是否存在注册表路径

    我已使用 Powershell 使用此命令检查路径是否存在 powershell 测试路径 HKCU Software Microsoft Windows 现在如何将同样的功能扩展到远程机器 如果我想测试远程计算机中的注册表路径 语法是什么
  • toBeFalsy() 的目的是什么?

    我在模板驱动表单中有一个角度输入
  • 如何在 WPF 数据网格中启用 NewItem Placeholder

    我有一个 wpf 数据网格 它绑定到一个可观察的集合 目前我没有 NewItemPlaceHolder 如何启用 NewItemPlaceholder 底部的空行以添加新行 这是我声明数据网格的方式
  • PHP 中的参数签名是什么?

    PHP官方文档同时解释了一下extends在类和对象部分下 它说 When overriding methods the parameter signature should remain the same or PHP will gene
  • Walmart Feeds API 错误:您的卖家目录中已存在具有不同 SKU 的产品 ID

    我正在使用这个API v3 feeds feedType MP MAINTENANCE 更新一些沃尔玛商品 我将提供 SKU 和 UPC 代码以及其他详细信息 对于某些产品来说它运行良好 但是沃尔玛已经存在一种具有不同 sku 的特定产品
  • 如何在Java中使用正则表达式拆分后删除空结果?

    我想找到给定字符串中的所有数字 所有数字都与字母混合但用空格分隔 我尝试拆分输入字符串 但在检查结果数组时发现有很多空字符串 那么如何更改我的分割正则表达式以删除这些空白 Pattern reg Pattern compile D0 Str
  • 在 HTML5 中拖放的 JavaScript

    尝试在 HTML5 中执行一个简单的拖放示例 但是当我将图像放入 div 元素中时 出现以下错误 未捕获的类型错误 无法将属性 innerHTML 设置为 null 所以我假设错误消息意味着dragElement为空 我不明白为什么 因为我