Перетаскивание строк между таблицами

Идея довольно проста, и она почти работает. Существует две таблицы, и пользователь может перетаскивать строки между двумя таблицами. Когда строка перетаскивается из table1 в table2, ajax используется для обновления базы данных данными, которые удалены из table1, добавлены в table2, и для повторного отображения обеих таблиц с новыми данными. То же самое работает, если информация перетаскивается из таблицы2 в таблицу1.

Вы можете увидеть образец кодаВот.

Вот выдержка из кода Javascript для одной из таблиц:

var startTable = "table1";
var $tabs=$("#" + startTable);
$( "tbody.connectedSortable")
.sortable({
    connectWith: ".connectedSortable",
    items: "> tr:not(:first)",
    appendTo: $tabs,
    helper:"clone",
    cursor:"move",
    zIndex: 999990
})
.disableSelection()
;
$($tabs).droppable({
    accept: ".connectedSortable tr",
    hoverClass: "ui-state-hover",
    drop:function(event, ui){
        var start= ui.draggable.attr("id");
        var desTable = $(this).attr("id");
        if(start != desTable){
            alert("The ajax should be called");
        }
        return false;
    }
});

Это работает отлично, за исключением одного случая. Если строка перетаскивается из Таблицы1 в Таблицу2, создается слот, показывающий, куда строка будет вставлена ​​при отпускании строки. Другими словами, если пользователь перетаскивает строку из Таблицы1 в последний элемент Таблицы2, он создает открытый заполнитель (под последней строкой в ​​Таблице2), чтобы отобразить, куда будет идти строка, когда ее отпустят. Есть одна проблема с этим. Если заполнитель создается, но строка затем перетаскивается за пределы таблицы и отпускается, строка по-прежнему переходит к заполнителю, но свойство dragggable никогда не вызывается.

То, что я хотел бы случиться, - это если заполнитель будет создан, независимо от того, куда пропущена строка, он перейдет к заполнителю и вызовет сбрасываемый код, который соответствует таблице, в которую он был помещен. Если места нет -холдер присутствует, строка должна вернуться туда, откуда ее перетащили, и ничего не должно происходить.

Каждый пример, который я пробовал перетаскивать между двумя таблицами, имеет одну и ту же проблему. Ребята, у вас есть какой-нибудь способ вызвать сбрасываемый код, даже если строка отбрасывается за пределы таблицы? Или, может быть, есть лучший способ для вызова ajax, чем когда строка отбрасывается на стол? Любое понимание будет с благодарностью.

Ответы на вопрос(2)

Ваш ответ на вопрос