在 Safari OSX 中拖放



似乎Safari不能很好地处理拖放。在下面的代码片段中,绿色div 在拖动时不会跟随鼠标指针,而是跟随它向右和向下移动。

编辑:当嵌入到这里时,拖动时看不到绿色div。这把小提琴更好 https://jsfiddle.net/8vckLerm/1/

我找不到任何技巧来使其正常运行。有人有什么建议吗?

谢谢

function ods(ev) {
  console.log('START');
}
function od(ev) {
  ev.preventDefault();
  console.log('DROP');
}
function odo(ev) {
  ev.preventDefault();
  console.log('OVER');
}
div {
  border: 1px solid black;
  padding: 1em;
  margin: 1em;
  background: white;
}
div[draggable] {
  background: #cfc;
  position: relative;
}
<div ondragstart="ods(event)" draggable="true">
  Drag Me
</div>
<div ondrop="od(event)" ondragover="odo(event)">
  Hello
</div>

将此行添加到ods函数中。

ev.dataTransfer.setData("text", ev.target.id);

更新的小提琴

function ods(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
  console.log('START');
}
function od(ev) {
  ev.preventDefault();
  console.log('DROP');
}
function odo(ev) {
  ev.preventDefault();
  console.log('OVER');
}
div {
  border: 1px solid black;
  padding: 1em;
  margin: 1em;
  background: white;
}
div[draggable] {
  background: #cfc;
  position: relative;
}
<div ondragstart="ods(event)" draggable="true">
  Drag Me
</div>
<div ondrop="od(event)" ondragover="odo(event)">
  Hello
</div>

最新更新