从MDN文档我可以阅读:
拖动 - 在拖动元素或文本选择时触发。 Dragstart - 当用户开始拖动元素或文本选择时触发
https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API
但是...当我将它附加到“拖动”事件时,为什么我的功能被浏览器忽略了,当我给它“dragstart”时它完全没问题? 根据定义,我假设它们都做同样的事情(?)
function itemDrag(e) {
e.dataTransfer.setData("text", e.target.id);
}
document.getElementById("try1").addEventListener("dragstart",function(){
itemDrag(event);
});
答案 0 :(得分:3)
当用户开始拖动元素时会触发dragstart事件 或文字选择。
当正在进行元素或文本选择时会触发拖动事件 拖动(每隔几百毫秒)。
所以 dragstart 应该被触发一次,拖动应该连续触发。
这来自MDN页面。
https://developer.mozilla.org/en-US/docs/Web/Events/drag
https://developer.mozilla.org/en-US/docs/Web/Events/dragstart
let continu = 0;
document.addEventListener("dragstart", function( event ) {
console.log('start');
}, false);
document.addEventListener("drag", function( event ) {
if(continu < 5){
console.log('continu');
}
continu ++;
}, false);
&#13;
<div class="dropzone">
<div id="draggable" draggable="true" ondragstart="event.dataTransfer.setData('text/plain',null)">
This div is draggable
</div>
</div>
<div class="dropzone"></div>
<div class="dropzone"></div>
<div class="dropzone"></div>
&#13;
拖动相关事件: