强制两个 jquery UI 可排序列表之间的顺序
Force order between two jquery UI sortable lists
奇怪这个问题以前没有人问过,至少我没能找到。
我有多个列表或元素,它们都使用 jQuery UI 可排序连接在一起。它的所有工作都按照文档所说的那样进行,但是我想让列表强制排序。例如,当加载每个列表时,项目按日期排序。当您将列表 1 中的项目移动到列表 2 时,您可以将该项目放在列表中的任何位置,而不管其日期如何。同样,您可以在同一列表中移动项目,使它们的顺序过时。
有没有办法让它计算日期排序并在移动项目后以正确的顺序呈现项目?
一旦项目从一个列表移动到另一个列表,它就会执行 ajax 请求将该项目保存到该列表,一个可能的解决方案是将该请求 return排序顺序,然后重新呈现该列表,但这似乎不是一种特别干净的方法,因为您已经拥有所有数据。
有什么 easier/better 方法可以做到这一点?如果它也可以防止在同一个列表中重新排序,那将是理想的。
谢谢。
JQuery Sortable 不处理您试图实现的行为。你必须自己做。我认为接收事件处理程序是一个很好的起点。您可以使用 ui.item.prev() 和 ui.item.next() 检索上一个和下一个元素,然后检查插入点是否符合您的要求并将元素插入到该位置或将元素转回原来的位置list/position ( $(ui.sender).sortable("cancel"); )
奇怪这个问题以前没有人问过,至少我没能找到。
我有多个列表或元素,它们都使用 jQuery UI 可排序连接在一起。它的所有工作都按照文档所说的那样进行,但是我想让列表强制排序。例如,当加载每个列表时,项目按日期排序。当您将列表 1 中的项目移动到列表 2 时,您可以将该项目放在列表中的任何位置,而不管其日期如何。同样,您可以在同一列表中移动项目,使它们的顺序过时。
有没有办法让它计算日期排序并在移动项目后以正确的顺序呈现项目?
一旦项目从一个列表移动到另一个列表,它就会执行 ajax 请求将该项目保存到该列表,一个可能的解决方案是将该请求 return排序顺序,然后重新呈现该列表,但这似乎不是一种特别干净的方法,因为您已经拥有所有数据。
有什么 easier/better 方法可以做到这一点?如果它也可以防止在同一个列表中重新排序,那将是理想的。
谢谢。
JQuery Sortable 不处理您试图实现的行为。你必须自己做。我认为接收事件处理程序是一个很好的起点。您可以使用 ui.item.prev() 和 ui.item.next() 检索上一个和下一个元素,然后检查插入点是否符合您的要求并将元素插入到该位置或将元素转回原来的位置list/position ( $(ui.sender).sortable("cancel"); )