Can table rows be made draggable?

前端 未结 3 1698
别那么骄傲
别那么骄傲 2020-12-01 05:34

I have two divs that are float:left:

3条回答
  •  一个人的身影
    2020-12-01 05:49

    This may do the trick. Changes:

    • Wrapped the tr elements inside tbody
    • Added a helper clone when dragging a tr. Only way I could make the dragging actually work. (Tell me if you don't want this (you want the tr to be removed from the table when you start dragging) and we'll see if we can find a solution)

    The javascript. When the dragging starts, a clone is made (because of helper: "clone") and the c variable will holw reference to the clone and the tr being dragged. When the dragging stops, if it is outside a droppable, the clone is destroyed. If it is inside the draggable, we destroy the clone and the tr (so it is removed from the list and can't be dragged again)

    //this will hold reference to the tr we have dragged and its helper
    var c = {};
    
    $("#inventor tr").draggable({
            helper: "clone",
            start: function(event, ui) {
                c.tr = this;
                c.helper = ui.helper;
            }
    });
    
    
    $("#invention tr").droppable({
        drop: function(event, ui) {
            var inventor = ui.draggable.text();
            $(this).find("input").val(inventor);
    
            $(c.tr).remove();
            $(c.helper).remove();
        }
    });
    

    The only new to the HTML is the wrapping of the trs inside tbody tags.

    Here's a demo: http://jsfiddle.net/UBG9n/1/

提交回复
热议问题
Alexander Graham Bell