跨连接的Sortables的JQueryUI Sortable sortchange事件

时间:2012-04-11 17:29:52

标签: javascript jquery jquery-ui jquery-ui-sortable

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

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

考虑:

  1. 用户将可排序#A中的项目拖动到可排序#B但尚未删除它。 更改可排序的事件火灾#A
  2. 用户然后拖动Sortable#A中的项目更改排序顺序。 没有火焰 示例:http://screencast.com/t/rW4xj485OEc
  3. 相反,当用户从同一个Sortable#A中开始排序时,Change Event会在Sortable#A上触发每个时间。 http://screencast.com/t/uirpg1E5nA

    首先,这似乎是ui.sortable的缺陷。第二,有没有人建议我如何获得蛋糕并吃掉它?如果需要,我很满意ui.sortable。

1 个答案:

答案 0 :(得分:0)

更改事件确实仅在连接的可排序对象上触发一次,但每次在连接的可排序对象上更改位置时,它都会触发原始可排序对象。

请参阅fiddle

根据您想要实现的目标,您可以使用一系列事件来获取所需信息:

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

因此,将项目的当前可排序项存储在其数据中,并在start& over,也许可以在stop上删除它。

我同意你的看法,应该会更容易。