以下jsbin最能解释过度事件未被触发的情况。
执行以下操作:
将可拖动(黄色)拖放到droppables(红色和蓝色)上,对于over事件,droppables将其背景颜色更改为绿色,而out事件则将其背景颜色更改回来。
< / LI>将可拖动内容放在内部可放置(蓝色)上。
将拖动拖动到外部的droppable(红色)上,它应该将其背景颜色更改为绿色,但它不会!过度事件没有被解雇但是当你再次离开外部的droppable时,它的out事件会触发。从那里开始按预期再次运作。
我认为这种行为是一个错误。我应该创建一个错误票吗?
编辑:
如果我只为droppable选项设置hoverClass,也会实现相同的行为。请参阅以下jsbin。这必须是一个错误,因为行为是不一致的。在内部droppable中删除draggable之后,行为是不同的。
答案 0 :(得分:1)
我想出了一个解决方法:
通过调查行为,out事件中必须有一些逻辑,这在drop事件中没有发生。每次draggable进入贪婪的droppable时,都会应用一些逻辑来阻止祖先droppables触发drop事件。在每个out事件中,此逻辑被重置,并且drop事件中缺少此重置。所以我从out事件中获取了所需的部分并将它们实现到drop事件中。
请参阅以下jsbin
我已经因为没有打开错误票而道歉。如果有人想这样做,请继续。
编辑:
Ankit Saroch指出,此问题已存在错误提示,并且还存在更简单的解决方法。查看问题文本下方的评论。