- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
HTML 拖放 API 定义了两个非常相似的事件,dragleave
和 dragexit
,它们与 dragenter
一起用于帮助跟踪当前下降目标。
快速搜索没有找到关于这两个事件的任何当前和清晰的文档,何时应该使用一个事件以及浏览器支持,所以我想我会在这里问。
我将分享我目前找到的资源:
dragexit
而 IE 至少实现了 dragleave
,主要区别在于事件的顺序:dragexit
触发在相应的 dragenter
之前,而 dragleave
令人困惑地在之后触发。dragleave
,但后来(~2013 年)添加了具有 Mozilla 语义的 dragexit
。dragleave
,最初与 dragexit
同义,但后来(4.0,~2011?)更改它以匹配规范.dragexit
最佳答案
我从 MDN 中获取了代码示例并在 Chrome 57.0.2987.110 和 Firefox 52.0.2 上运行了它。
Firefox event sequence is
- dragexit
- dragleave
- drop
但是 Chrome 从未触发过 dragexit
事件。
Chrome event sequence is
- dragleave
- drop
进一步分析dragexit
事件,我在维基百科上发现它是Mozilla的一部分XUL events其中说:
In addition to the common/W3C events, Mozilla defined a set of events that work only with XUL elements
如果您需要代码片段,这里是来自 plunkr 的 dragexit
和 dragleave
事件片段.
document.addEventListener("dragexit", function(event) {
console.log(event.type);
// reset the transparency
event.target.style.opacity = "";
}, false);
document.addEventListener("dragleave", function(event) {
console.log(event.type);
// reset background of potential drop target when the draggable element leaves it
if (event.target.className == "dropzone") {
event.target.style.background = "";
}
}, false);
有一个有趣的tutorial这表明 DnD API 可以在不使用并非所有浏览器都完全支持的 dragexit
事件的情况下完全实现。安全的做法是使用所有主流浏览器都支持的 dragleave
事件。
关于html - dragexit vs dragleave - 应该使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42775095/
HTML 拖放 API 定义了两个非常相似的事件,dragleave 和 dragexit,它们与 dragenter 一起用于帮助跟踪当前下降目标。 快速搜索没有找到关于这两个事件的任何当前和清晰的
当拖动离开窗口 (Firefox4) 时,我无法触发 dragleave 或 dragexit 事件。在 Chrome 和 Safari 中,这按预期工作......当拖动离开窗口时,你会收到一个 d
我是一名优秀的程序员,十分优秀!