jQuery可排序的“输出”事件

问题描述

我有两个HTML无序列表,我将它们与jQuery可拖动和可排序一起用作购物车,如其网站演示中所示。

我们有一个要求,如果用户将某个商品拖到购物车中所选商品之外,则应该将其删除

我们还使用MVC 5和Ajax为每个完成的操作更新购物车...如果将某个项目拖到所选项目中,则会立即将其添加数据库表或缓存中。如果在选定项目列表中对项目进行了排序,我们将捕获旧索引和新索引,并立即在后端更新优先级值。这两个功能运行正常。

我遇到的问题是,根据文档(https://api.jqueryui.com/sortable/#event-out)并通过Inspect Element进行了证明,jQuery sortable的“ Out”事件可能在两种不同的情况下触发:

  1. 如果可排序项目被拖动到其容器之外。

  2. 如果可排序项目已删除

如果我错了,请纠正我,但是第二次触发out事件对我来说没有意义。假设用户开始移动一个项目,但随后又不移动一个项目并释放鼠标,则也会触发“ out”事件。

您如何准确确定可排序项目是否已拖放到其容器列表之外(而不是在其容器内移动)?

解决方法

我们的解决方案是放弃使用JQuery UI进行排序和拖放操作。

我们使用了sortable.js,它在处理排序和拖放事件方面似乎更加清晰。