javascript - 使用 jQuery 添加拖动事件
问题描述
我正在使用 jQuery 将 dragStart 事件添加到按钮。
这是我的html:
$('.btn-photo').on('dragstart', function (event) {});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="SinglePhoto" class="btn-section btn-photo" draggable="true"></div>
这适用于 Chrome,但不适用于 Safari。有谁知道为什么?
在 Safari 中,我可以拖动元素,但它不会显示为被拖动。在 Chrome 中,我可以拖动元素并看到它被拖动。
任何帮助将不胜感激!谢谢!
解决方案
我不确定这是否 100% 正确,但您可以尝试在事件的 dataTransfer 属性上使用 setDragImage 设置拖动图像:
$('.btn-photo').on('dragstart', function (event) {
event.preventDefault();
let img = $(this)[0];
event.dataTransfer.setDragImage(img, 0, 0);
});
我还在event.preventDefault()
那里扔了一个,以防万一它与此有关(我不在 Safari 上,所以无法测试)。
推荐阅读
- java - 如何绘制 Java 中非常小的值?
- r - 函数通过包内的测试并从小插图中失败(由于 cpp_object_initializer)
- python - 如何连接到流浪主机上的兔子?
- javascript - 获取点击元素的类名
- javascript - Node.js 启动更新程序并关闭主程序
- java - 为什么我的 JFrame 在我的突围游戏中是空白的?
- tmux - tmux/tmuxinator 自定义面板布局
- javascript - 如何使用Javascript中的键数组过滤键值字典?
- erlang - 在 Elixir ExUnit 中,我如何保证 Supervisor 将创建一个新的 GeNserver?
- docker - 如何对在 Docker Desktop (Kubernetes) 中运行的 pod 进行 HTTP 调用