Jquery Sortable在删除

时间:2016-04-29 11:48:07

标签: ajax jquery-ui serialization jquery-ui-sortable

我有许多connectedSortable列表,我还创建了一个垃圾箱<div>,它可以接收一个丢弃的项目(使用drop:事件),这很棒。

然后从数据库中删除此项目。

我遇到的问题是,当一个项目被放入bin并从数据库中删除时,stop:事件将触发自该项目被删除后现在已更改的列表。 stop事件序列化item id列表并使用新订单更新数据库。但是它仍然会序列化已删除的ID。

e.g。

<li id="1">Item 1</li>
<li id="2">Item 2</li>
<li id="3">Item 3</li>
<li id="4">Item 4</li>

然后,如果我将item 1拖到bin中,则排序后的序列化数据为:

item[]:1 //shouldn't be serialized
item[]:2
item[]:3
item[]:4

我的垃圾箱ajax是:

$('.wastebin').droppable({
  accept: 'li',
  helper  : 'clone',
  drop: function(event, ui) {
    var data = $.param({order: ui.helper.attr("data-order")});
    data += '&'+ $.param({dpmt_id: ui.helper.attr("data-dpmt")});
    data += '&'+ $.param({pjct_id: ui.helper.attr("data-pjct")});
    console.log("Binned: " + data);

   $.ajax({
     type: "POST",
     url : "project_tasks.php?task=delete_project",
     data: data,
     success: function(){
       toastr["success"]("Project has been deleted!");
       ui.helper.remove();
     },
     error: function(){
      toastr["Warning"]("Failed to delete project.");
     }
   });
  }
});

停止活动:

stop: function(event, ui) {
    var data = $(this).sortable('serialize');
    var dpmt = $(this).data('dpmt');
    ui.item.attr('data-dpmt', dpmt);

    data += '&'+ $.param({dpmt_id: $(this).data('dpmt')});
    data += '&'+ $.param({pjct_id: ui.item.data('pjct')});
    $.ajax({
      type: "POST",
      url : "project_tasks.php?task=update_ordering",
      data: data,
      success: function(){
        toastr["success"]("New order updated");
      }
    })
});

我仍然在用jQuery找到我的脚,所以我只是想念一些愚蠢的东西。

由于

0 个答案:

没有答案