0

我需要检测可排序的顺序何时发生变化。无论排序项目来自何处,我都需要它来触发更改事件。

但是,ui.sortable 中可能存在一个缺陷,当从一个连接的可排序对象拖动到另一个时,该缺陷不会触发事件。

考虑:

  1. 用户将一个项目从 Sortable#A 拖到 Sortable#B 但尚未放下它。更改事件在 Sortable#A 上触发
  2. 然后,用户在 Sortable#A 中拖动项目以更改排序顺序。NOTHING 触发 示例: http ://screencast.com/t/rW4xj485OEc

相反,当用户从同一个 Sortable#A 中开始排序时,Change Event 每次都会在 Sortable#A 上触发。 http://screencast.com/t/uirpg1E5nA

首先,这似乎是 ui.sortable 中的一个缺陷。其次,有没有人建议我如何得到我的蛋糕并吃掉它?如果需要,我很乐意分叉 ui.sortable 。

4

1 回答 1

0

change 事件确实只在连接的可排序对象上触发一次,但每次连接的可排序对象的位置发生变化时,它都会在原始可排序对象上触发。

小提琴

根据您要达到的具体目标,您可以使用事件组合来获取所需的信息:

  • start告诉你$(ui.item)当前的可排序。
  • over$(this)告诉您项目被拖入的连接的可排序 ( )。
  • change告诉您该项目在可排序的最后一个over-ed 或start-ed 内移动。

因此,将项目的当前可排序存储在其数据中,并在start&上对其进行修改over,并可能在 上将其删除stop

不过我同意你的观点,这应该更容易。

于 2012-04-11T19:21:53.170 回答