как перетаскивать предметы, когда финиш после падения

0

Я не могу выбрать и перетащить элемент обратно, когда закончится после капли

Здесь мой код http://jsfiddle.net/T3VY6/

Я хочу перетащить несколько строк между двумя таблицами

скрипт

    $("#tbodyMember tr").click(function(e) {
        $("#tbodyNotMember").find('tr').removeClass("selected");               
        $(this).toggleClass('selected');
    });
    $("#tbodyNotMember tr").click(function(e) { 
        $("#tbodyMember").find('tr').removeClass("selected");         
        $(this).toggleClass('selected');
    });
    $(".connectedSortable tr").draggable({
        helper: function(){
            var selected = $('.connectedSortable tr.selected');
            if (selected.length === 0) {
                selected = $(this).addClass('selected');
            }
            var container = $('<div/>').attr('id', 'connectedSortable');
            container.append(selected.clone().removeClass("selected"));
            return container;
         }
    }); 
    $("#tbodyMember").droppable({
        drop: function (event, ui){             
            $(this).find('tr:last').after($(ui.helper.children()));
            $('#tbodyNotMember tr.selected').remove();
        }
    }); 
    $("#tbodyNotMember").droppable({
        drop: function (event, ui){        
            $(this).find('tr:last')
                    .after($(ui.helper.children()));
            $('#tbodyMember tr.selected').remove();       
        }
    }); 
  • 1
    Может быть, вы должны использовать sortable() ? jsfiddle.net/7UmY7
Теги:

2 ответа

0

Вам нужно связать перетаскиваемое событие с клонированным элементом tr.

Посмотрите обновленный код: http://jsfiddle.net/XN2Vh/

 function draggableHelper(){
            var selected = $('.connectedSortable tr.selected');
            if (selected.length === 0) {
                selected = $(this).addClass('selected');
            }
            var container = $('<div/>').attr('id', 'connectedSortable');
            container.append(selected.clone().removeClass("selected").draggable({
                    helper: draggableHelper
                }));
            return container;
         }
    $(".connectedSortable tr").draggable({
        helper: draggableHelper
    }); 
0

Вам нужно сохранить обработчики обработанных данных на ваших копиях. Вы можете сделать это, вернув метод clone.

Я предпочел бы скорее переместить выбранные (и их обработчики) предметы, а не клонировать их. Вот как это сделать:

$("#tbodyMember").droppable({
        drop: function (event, ui){             
            $(this).append($('tr.selected'));
            $('#tbodyNotMember tr.selected').remove();
        }
    }); 
    $("#tbodyNotMember").droppable({
        drop: function (event, ui){        
            $(this).append($('tr.selected'));
            $('#tbodyMember tr.selected').remove();       
        }
    });

см.: * добавить * клон

Ещё вопросы

Сообщество Overcoder
Наверх
Меню