【发布时间】:2015-12-17 01:42:27
【问题描述】:
我想知道 HTML5 drag &drop 的 dragover 和 dragenter 事件的区别。
我不清楚区别。
【问题讨论】:
标签: html drag-and-drop
我想知道 HTML5 drag &drop 的 dragover 和 dragenter 事件的区别。
我不清楚区别。
【问题讨论】:
标签: html drag-and-drop
dragenter 事件发生在您将某些东西拖入目标元素的那一刻,然后它会停止。 dragover 事件发生在您拖动某物直到放下它的过程中。
看这里:
$('.dropzone').on("dragover", function (event) {
console.log('dragover');
});
$('.dropzone').on("dragenter", function (event) {
console.log('dragenter');
});
现在看控制台:
如您所见,draenter 发生一次(当您将元素拖入目标时)。
但拖动事件每隔几百毫秒发生一次。
drag 和 dragstart 之间存在相同的区别,dragstart 发生一次,但 drag每隔几百毫秒发生一次。
【讨论】:
dragenter 事件仅在拖动可拖动元素时触发,光标 进入附有ondragenter 事件的DOM 元素区域.
另一方面,dragover 事件在拖动可拖动元素时“不断”触发,并且光标恰好位于 DOM 元素区域内的屏幕上,该 DOM 元素具有ondragover 事件附在上面。
不同之处在于(在拖动时)当光标进入拖放区时,
dragover会不断触发(在鼠标移动时),而dragenter仅在光标“进入”时触发一次
function dragover(e) {
console.log("drag over")
}
function dragenter(e) {
console.log("drag enter!!!")
}
#target{
width: 200px;
height: 200px;
background: lightyellow;
border: 1px solid gold;
}
div[draggable]{
width: 60px;
height: 60px;
background: red;
}
<div draggable="true">Drag Me</div>
<div id="target" ondragover="dragover(event)" ondragenter="dragenter(event)">Drop Zone</div>
【讨论】: