【问题标题】:No default drag image on Firefox 67Firefox 67 上没有默认拖动图像
【发布时间】:2019-07-05 10:30:33
【问题描述】:

我只是将一个简单的divdraggable 属性设置为true,如下所示:

#aDiv {
    width: 400px;
    height: 550px;
    background-color: blue;
    border: 1px solid black;
}
<div id = "aDiv" draggable="true"></div>

当我拖动项目时,我在 Chrome、Opera、Edge 和 Internet Explorer 11 上看到拖动图像,但在 Firefox 上没有。

为什么 Firefox 上的可拖动项目没有默认的拖动图像?我错过了什么吗?

我在 Windows 10 上使用 Firefox 67。

更新

Jaydeep 对原始问题的评论有一个答案链接,这表明我们必须为可拖动元素提供 dragstart 事件处理程序,并且还必须在 event.dataTransfer 对象上设置一些数据,以便 Firefox 启动显示拖动图像。所以,我改变了我的代码,但它仍然对 Firefox 没有影响。任何想法为什么?

$(document).ready(function() {
    $("#aDiv").on("dragstart", function(event) {
        event.dataTransfer.setData("text", "foo");
        event.dataTransfer.effectAllowed = "move";
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<div id = "aDiv" draggable="true"></div>

【问题讨论】:

  • 检查here
  • @Jaydeep 谢谢。我正在测试你所说的。同时,请将其发布为答案,以便对其他人也有帮助。
  • @Jaydeep 不。没有效果。我正在为问题添加更多细节。
  • 我已经更新了答案并在firefox 24中测试(不能下载最新的)

标签: javascript html firefox drag-and-drop


【解决方案1】:

"要使元素可拖动,请将 draggable 属性设置为 "true"。但是,这不足以使元素在 Firefox 中可拖动。您需要定位 dragstart 事件并在 DataTransfer 对象上设置一些数据:"

document.getElementById('aDiv').addEventListener('dragstart', function(e){
  e.dataTransfer.setData('text', 'foo');
});

function dragstart(component, event, helper) {
     component.set("v.dragid", event.target.dataset.dragId);
     event.dataTransfer.setData('Text', component.id);
}
#aDiv {
    width: 400px;
    height: 550px;
    background-color: blue;
    border: 1px solid black;
}
&lt;div id = "aDiv" draggable="true"&gt;&lt;/div&gt;

参考来自Here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 2021-10-23
    • 2015-08-07
    • 2019-02-04
    相关资源
    最近更新 更多