Javascript HTML拖放和事件冒泡的潜在错误
我注意到,当一个div中有一个div正在处理dragenter/leave事件时,拖动内部div会导致外部div触发Javascript HTML拖放和事件冒泡的潜在错误,javascript,css,html,drag-and-drop,Javascript,Css,Html,Drag And Drop,我注意到,当一个div中有一个div正在处理dragenter/leave事件时,拖动内部div会导致外部div触发dragleave。但这仅在外部div为位置:fixed时发生。否则,在子/内部div上拖动会正确地弹出到其父级 例如: 将文件拖到输出窗格上,您将看到dropzone显示。如果继续拖动“Uh-oh”文本,dropzone将消失。注释掉position:fixed行,然后再试一次,您将看到如果您拖动到“哦”,dropzone仍然保留 这是虫子吗?实际上,我刚刚意识到,在Firefo
dragleave
。但这仅在外部div为位置:fixed
时发生。否则,在子/内部div上拖动会正确地弹出到其父级
例如:
将文件拖到输出窗格上,您将看到dropzone显示。如果继续拖动“Uh-oh”文本,dropzone将消失。注释掉position:fixed
行,然后再试一次,您将看到如果您拖动到“哦”,dropzone仍然保留
这是虫子吗?实际上,我刚刚意识到,在Firefox中,
dragleave
会在我移动内部div时被触发,而不管位置如何。如何解决这个问题?我通过三层解决了这个问题:
全宽位置:固定背景div,包含两个div:
- 一个带有
z-index:1
的div,显示文本,如“drop here to upload”
- 另一个div具有
z-index:2
,即全宽/全高位置:绝对值
,位于前一个div的顶部以观察拖动事件