选择退出'dragenter`和`dragover`事件(html5)

时间:2012-10-15 20:59:13

标签: html5 dom javascript-events drag-and-drop

我有一系列可拖动的“内容”元素,以及一个根级“反馈”UI元素,它显示在它们上方,以便在拖放过程中提供反馈。

问题是,在拖动操作期间,将鼠标悬停在“feedback”元素上会导致在该元素上触发dragenterdragover事件,而不是基础内容元素。它有效地“阻止”dragenter事件触发正确的元素。

元素有没有办法取消或“选择退出”dragenter / dragover事件?我可以在下面显示反馈元素,但我宁愿不这样做。

jsFiddle: http://jsfiddle.net/jact8/1/

我正在使用HTML拖放api,而不是jQuery或类似的东西。

1 个答案:

答案 0 :(得分:1)

我创建了一个新的fiddle。我想您希望在列上的处理程序中使用currentTarget而不是target来确保您收到的事件来自您添加侦听器的元素(列)而不是源自它的元素(斜体文字)。请参阅解释here(适用于ActionScript,但我相信它也适用于JavaScript)。

我假设insertionCaret元素上的监听器仅用于调试目的并已删除它(如果我在这里弄错了,请告诉我)。如果你不听,你就不会收到这个活动,所以不需要选择退出!