排序时是否可以“暂停”放置事件以询问用户问题(jquery-ui 可排序)?

问题描述 投票:0回答:1

我正在开发一个使用 jquery-ui sortable 小部件的项目。

在某些情况下,我需要问用户一个与排序相关的问题,然后

update
回调将根据他们的答案表现不同。

我使用内置的

confirm
功能来完成此工作,但是我需要能够自定义按钮,这是不可能的。 Jsfiddle 链接如下。

如果我切换到自定义提示,那么我认为我无法使其阻塞,这意味着排序在用户回答问题之前完成。

有没有一种方法可以“暂停”排序,直到用户回答了问题,这样我就可以得到与以下示例相同的功能,但带有自定义的确认对话框?

出于此问题的目的,我们可以假设可以按如下方式调用自定义确认对话框(基于 jsfiddle 中的代码):

beforeStop:function(e,u) {
  // Pause the sort

  customConfirmDialog("Do you want to do something special?", function(result) {
    if (result) {
      // They said yes
      u.item.addClass("special");
     }

     // Allow the sort to continue here

  });
}

jsfiddle

jquery-ui jquery-ui-sortable
1个回答
0
投票

如果您阅读了 cancel 方法的文档,它会说:

取消当前可排序的更改并将其恢复到当前排序开始之前的状态。在停止和接收回调函数中很有用。

我认为您始终可以取消该活动,然后在他们确认后自行移动该物品。您可以记录占位符的前一个同级,以便知道将其放置在哪里(如果移动到列表顶部,则为空)。

您可能还需要使用 refresh 和/或 refreshPositions 才能使一切正常工作(我猜是

refreshPositions
)。

© www.soinside.com 2019 - 2024. All rights reserved.