示例:https://jsfiddle.net/u3m4eazx/
我有2个可拖动的图像和3个可以放下图像的div($ dropZones)。
$dropZones.forEach($z => {
$z.addEventListener('dragover', onDragOver);
$z.addEventListener('dragleave', onDragLeave);
$z.addEventListener('drop', onDrop);
});
dragover和dragleave事件触发并完美地工作。我通过添加一个css类对div进行悬停效果。
const onDragOver = e => {
e.preventDefault;
let id = e.target.dataset.id;
let dropzone = document.querySelector(`.dropzone[data-id="${id}"]`);
dropzone.classList.add('ready');
};
在dragleave事件中,我只是删除了这个类。所以他们运作良好。
但是下降事件并没有发生。这就是我在drop事件中的作用
const onDrop = e => {
console.log("Drop triggered");
alert('Drop triggered');
};
任何人都知道为什么事件不会触发?
答案 0 :(得分:2)
是的所以我回头看了一下,发现preventDefault()
函数写错了。我是在没有()
的情况下写的。
不管怎样,谢谢。