- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有以下 HTML 结构,并附上了 dragenter
和 dragleave
<div id="dropzone">
的事件元素。
<div id="dropzone">
<div id="dropzone-content">
<div id="drag-n-drop">
<div class="text">this is some text</div>
<div class="text">this is a container with text and images</div>
</div>
</div>
</div>
当我将文件拖到 <div id="dropzone">
上时, dragenter
事件按预期触发。但是,当我将鼠标移到子元素上时,例如 <div id="drag-n-drop">
, dragenter
为 <div id="drag-n-drop">
触发事件元素,然后是 dragleave
为 <div id="dropzone">
触发事件元素。
如果我将鼠标悬停在 <div id="dropzone">
再次元素,dragenter
事件再次被触发,这很酷,但是之后 dragleave
为刚刚离开的子元素触发事件,因此 removeClass
指令被执行,不爽。
这种行为存在问题的原因有两个:
我只是附上dragenter
& dragleave
到<div id="dropzone">
所以我不明白为什么子元素也附加了这些事件。
我还在拖<div id="dropzone">
元素悬停在其子元素上,所以我不想要 dragleave
开火!
这里有一个 jsFiddle 可以修改:http://jsfiddle.net/yYF3S/2/
那么...当我将文件拖到 <div id="dropzone">
上时,我怎样才能做到这一点?元素,dragleave
即使我拖过任何子元素也不会触发...它只会在我离开 <div id="dropzone">
时触发元素...在元素边界内的任何地方悬停/拖动不应触发dragleave
事件。
我需要它是跨浏览器兼容的,至少在支持 HTML5 拖放的浏览器中,所以 this answer还不够。
Google 和 Dropbox 似乎已经解决了这个问题,但是他们的源代码被缩小/复杂,所以我无法从他们的实现中解决这个问题。
最佳答案
如果您不需要将事件绑定(bind)到子元素,您可以随时使用 pointer-events 属性。
.child-elements {
pointer-events: none;
}
关于jquery - 拖动子元素时触发父元素的“dragleave”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867506/
我有一个 dragenter 的工作示例和 dragleave突出显示应放置文件的区域的事件。本例 works correctly . 现在如果我只添加一个 在我的 dragenter 区域内,hig
概述 我有以下 HTML 结构,并附上了 dragenter和 dragleave 的事件元素。 this is some text
我正在编写一个 WPF 应用程序,在应用程序的控件中支持拖放,并且还在我的桌面文件和我的应用程序之间拖放。我用装饰器来改变我的鼠标光标。 控件之间的内部拖放操作没有问题。问题是桌面文件和我的应用程序之
我在使用“dragstart”、“dragleave”事件的浏览器上处理拖动事件。当仅添加宽度属性时,Internet Explorer 11 中的行为非常不同。一旦为元素指定了宽度属性,dragLe
请在 - http://jsfiddle.net/fSB32/2/ 查看演示 我的意图是在 document 上触发拖动事件时出现叠加层。因此,允许用户将图像拖放到文档的任何位置。当他这样做时,会出现
我正在尝试跟踪整个屏幕的 dragenter/leave,到目前为止,这在 Chrome/Safari 中运行良好,由来自 https://stackoverflow.com/a/10310815/6
我遇到的问题是当悬停该元素的子元素时会触发该元素的 dragleave 事件。另外,dragenter 在再次悬停父元素时不会触发。 我做了一个简化的 fiddle :http://jsfiddle.
我在 Canvas 上有一个拖放操作,当一个对象被拖入和拖出它时,它应该做一些事情。我的问题是 DragEnter/DragLeave 事件在鼠标将对象移动到它上面时不断触发,而不仅仅是在进入/退出时
从父控件拖动到子控件时,我收到 DragLeave 事件。我只希望在超出控件范围时获得此事件。我该如何实现? 请引用这个简单的示例应用程序。 Hilight and Dra
我之所以注意到这一点,是因为我错误地尝试将 DragEventHandler 附加到 DragLeave 事件。我惊讶地发现 DragLeave Event 就像一个通用的 EventHandler。
自定义 UserControl ChartControlShelf 包含一个 TableLayoutPanel 和 3 个子控件,所有类型都是 Panel。 children 没有 EventHand
在拖放中,dragLeave 事件有时会在 drop 事件之前触发。 这会导致问题,因为目标是在 dragEnter 中使用 dragLeave 获取监听器并删除监听器。如果 dragLeave 在
HTML 拖放 API 定义了两个非常相似的事件,dragleave 和 dragexit,它们与 dragenter 一起用于帮助跟踪当前下降目标。 快速搜索没有找到关于这两个事件的任何当前和清晰的
我正在尝试创建一个元素,用户可以在拖动元素时将鼠标悬停在其上以缓慢向下滚动页面。这是支持我的拖放编辑器所必需的。 我正在检测用户是否将鼠标悬停在 anchor 上并进行拖动,如果是,我会启动一个 $i
我注册了 HTML5 DnD 事件,以便从桌面获取拖放文件。我看到的问题是我总是在 drop 事件之前得到 dragleave 事件。在规范中没有提到这样的事情 - 如果您使用 dragleave 作
我在我的 Angular 应用程序中使用原生 HTML 拖放,我发现了这个事件闪烁的问题 This答案并不能解决我的问题,因为他们正在手动移动元素。我将其保留在 native 实现中。 我的简化代码:
当拖入时当涉及到 时,边框和文本的颜色从灰色完美变为黑色它变回灰色。 CSS: .upload-cont{ cursor:pointer; margin-left:130px;
指针事件:无;已经实现了,在调试中, bool 值在“拖动”和“拖动OL”的true和false之间快速切换 HTML 结构
我正在通过引用此 link 对 HTML5 拖放概念进行研究工作.目前,我遇到了 dragenter 事件的问题,该事件在 dragleave 之前第二次触发(针对子元素)。因此,在某些情况下,当 d
我在单页应用程序中使用 html5 dragevents。 目前,我正在监听 dragleave 和 dragenter 事件以在元素上设置适当的类。 但是,当两个有效的目标元素(A 和 B)彼此相邻
我是一名优秀的程序员,十分优秀!