HTML拖放和事件冒泡的潜在错误

时间:2016-07-26 06:51:22

标签: javascript css html5 drag-and-drop

我注意到当div中的div处理dragenter / leave事件时,拖动内部div会导致外部div触发dragleave。但这只发生在外部div为position: fixed时。否则,拖动子/内部div会正确地冒泡到其父级。

示例:https://jsfiddle.net/ffxsam/L2mvbo2t/

将文件拖到输出窗格上,您将看到dropzone显示。如果你继续拖过"呃哦"文字,dropzone消失了。注释掉position: fixed行,然后再试一次,你就会看到你是否拖了过来呃哦,"掉落区仍然存在。

这是一个错误吗?实际上,我刚才意识到在Firefox中,dragleave会在我移动到内部div时被触发,而不管position。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我通过三层解决了这个问题:

全宽button { position: fixed; right: 0; } 背景div,其中包含两个div:

  • 一个position: fixed的div显示“drop here to upload。”等文字。
  • 另一个z-index: 1的div,它是全宽度/高度z-index: 2,位于上一个div的顶部,用于监视拖动事件。