【问题标题】:Move a drag and dropped DIV back to it's previous location programatically using jQueryUI Sortable使用 jQuery UI Sortable 以编程方式将拖放的 DIV 移回其先前位置
【发布时间】:2015-06-20 17:41:01
【问题描述】:

我正在使用jQueryUI Sortable 构建KanBan 样式板。这些板将用于保存数据库中的订单记录。每个 bBoard/Column 是 Order 记录当前所在的“状态”。因此,当订单通过装配线进行时,可以将其拖放到新的 board/column 中,然后发出 AJAX 请求以更新订单记录状态数据库列。

这张图片应该有助于更好地解释......

将订单拖放到新列/板后,它会显示如下图所示的警报对话框。如果您接受它,它将发出 AJAX 请求以保存刚刚移动的此订单记录的新列/板。

如果您单击取消,则不会发出 AJAX 请求。这意味着从技术上讲,ordr rcord 仍将保存为它的上一列。不管在 DOM 中,它都会被放到它的新位置。

我需要弄清楚如何在通过警报对话框取消拖放时将订单记录移回上一列。

任何想法如何以编程方式将订单记录移动到它;以前的板/列?

基本的 JavaScript 代码...

$(function() {
    $(".column").sortable({
        connectWith: ".column"
    });

    // Event fired when order cards has been moved to a new column
    $(".column").on("sortreceive", function(event, ui){

      var newStatusColumnName = $(this).data('status-name');

      // Show a confirmation Dialog.
      // Approve = AJAX save new column that order was moved to
      // Cancel = Do not save new value to database and move order
      // back to previous board/column

    });

});

此处演示 JSFidle 设置 http://jsfiddle.net/jasondavis/wv6fchmv/

【问题讨论】:

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


【解决方案1】:

试试

            'Cancel': {
                'class': 'gray',
                'action': function() {

                    // need to move the order card back to its previous status column somehow!
                   $(ui.sender).sortable('cancel');

                }
            }

点击取消按钮

更新了你的小提琴 http://jsfiddle.net/wv6fchmv/2/

更多jQuery Sortable - cancel and revert not working as expected

【讨论】:

  • 谢谢,我刚刚在jsfiddle.net/jasondavis/wv6fchmv/3 处使用了不同的方法,但是我需要获取在我的示例中现在被破坏的列上的新值。我现在也会检查您的解决方案,谢谢
  • 您的解决方案很好,可以使用我现有的代码,所以我有新专栏的价值仍然感谢这会很好用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 2013-02-26
  • 2020-06-11
相关资源
最近更新 更多