0

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

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

有没有办法让元素取消或“退出” dragenter/dragover事件?我可以在内容下方显示反馈元素,但我不想那样做。

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

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

4

1 回答 1

1

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

我假设insertionCaret元素上的侦听器仅用于调试目的并已将其删除(如果我在这里弄错了,请告诉我)。如果您不收听,您将不会收到该事件,因此无需选择退出!

于 2012-10-16T10:33:28.017 回答