dropable的Over事件是't工作正常,在可拖动对象被拖放到贪婪的可拖动对象上并再次拖动后

Over event of droppable isn't working correctly, after draggable is dropped on greedy droppable and dragged again

本文关键字:拖动 对象 拖放 贪婪 事件 Over dropable 工作      更新时间:2023-09-26

下面的jsbin可以很好地解释未触发over事件的情况。

执行以下操作:

  1. 将可拖动对象(黄色)拖动到滴管(红色和蓝色)上,在over事件中,滴管将其背景颜色更改为绿色,在out事件中,它们将其背景色更改回绿色。

  2. 将可拖动对象放置在内部可拖动对象上(蓝色)。

  3. 将可拖动对象拖动到外部可拖动对象(红色)上,它应该将其背景色更改为绿色,但它没有!over事件不会触发,但当您再次使外部可滴管时,其out事件会触发。从那时起,它又像预期的那样工作了。

我认为这种行为是个错误。我应该创建一个bug票证吗?

编辑:

如果我只是为可丢弃选项设置了一个hoverClass,也可以实现同样的行为。请参阅下面的jsbin。这一定是一个错误,因为行为不一致。将可拖动对象放入内部可拖动对象后,行为会有所不同。

我想出了一个变通办法:

通过调查行为,out事件中必须有一些逻辑,而drop事件中没有发生这种逻辑。每次可拖动对象进入贪婪可丢弃对象时,都会应用一些逻辑来防止祖先可丢弃对象触发其丢弃事件。在每次输出事件中,此逻辑都会重置,并且在下降事件中此重置丢失。因此,我从out事件中提取了所需的部分,并将它们实现到drop事件中。

请参阅以下jsbin

我已经可以为没有打开错误票证而道歉了。如果有人想那样做,请继续。

编辑:

Ankit Saroch指出,这个问题已经有了一个错误通知单,而且还有一个更简单的解决方法。查看他在问题文本下方的评论。