我想了解HTML5 拖放中dragover
和dragenter
事件的区别。
我不清楚它们之间的区别。
当你把一些东西拖进目标元素时,dragenter事件就会发生,并停止。
而dragover事件则在你拖动某物直到放下它的整个过程中都会发生。
看这里:
$('.dropzone').on("dragover", function (event) {
console.log('dragover');
});
$('.dropzone').on("dragenter", function (event) {
console.log('dragenter');
});
现在查看控制台:
正如您所见的,当您将元素拖入目标时,dragenter事件只会发生一次。
但是 dragover 事件 每隔几百毫秒就会发生一次。
drag 和 dragstart 之间也存在同样的差异,dragstart 只会发生一次,但 drag 每隔几百毫秒就会发生一次。
dragenter
事件仅在拖动可拖动元素时,光标进入具有附加ondragenter
事件的DOM元素区域时触发。
另一方面,dragover
事件在拖动可拖动元素并且光标恰好位于屏幕内具有附加ondragover
事件的DOM元素区域时“不断”触发。
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>