Как я могу получить событие, когда перетаскиваемый элемент НЕ сбрасывается на действительного агента удаления. Слушатель дропа и драже назначается в разных замыканиях. Я бы предпочел не полагаться на тайм-ауты и глобальные пространства имен.
У меня есть обходной путь, который использует таймауты и глобальные пространства имен, которые показывают функциональность, которую я ищу.
//global namespace
let justDropped = false;
(() => {
//closure for the drag events
let dragElement = document.querySelector("#drag");
dragElement.addEventListener("dragend", (e) => {
if (!justDropped) {
console.log("Not dropped on an valid drop-agent");
}
})
})();
(() => {
//closure for drop event
let dropElement = document.querySelector("#drop");
dropElement.addEventListener("drop", (e) => {
justDropped = true;
setTimeout(() => {
justDropped = false;
}, 10)
})
})();