拖动事件不会在Firefox或IE中触发

Kor*_*ako 6 javascript html5 draggable

在Chrome中,会触发拖动事件并将其记录到控制台.在Firefox和IE中,它没有.

<html>
<head>

<style>
  #d {
    width:20px;
    height:20px;
    background-color: red;
  }
</style>

</head>
<body>

<div id="d" draggable="true"></div>

<script>
    d = document.getElementById('d');
    d.addEventListener('dragstart', function(e){
      console.log("dragstart:", e);
    });
    d.addEventListener('drag', function(e){
      console.log("drag:", e);
    });
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

小提琴版:http://jsfiddle.net/korimako/e1wqafyr

如何设置div来发送拖动事件并正确地听取它们?

ade*_*neo 10

Firefox要求dataTransfer在触发拖动事件之前设置

d = document.getElementById('d');

d.addEventListener('drag', function(e){
    console.log("drag:", e)
});

d.addEventListener('dragstart', function(e){
    e.dataTransfer.setData('application/node type', this);
    console.log("dragstart:", e)
});
Run Code Online (Sandbox Code Playgroud)

小提琴

对于拖动类型

  • 当可拖动元素位于锚元素内时,这不起作用。 (2认同)