Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML拖放和事件冒泡的潜在错误_Javascript_Css_Html_Drag And Drop - Fatal编程技术网

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

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

我注意到,当一个div中有一个div正在处理dragenter/leave事件时,拖动内部div会导致外部div触发
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的顶部以观察拖动事件