Swap elements when you drag one onto another using jQuery UI

前端 未结 3 1426
傲寒
傲寒 2021-01-02 15:58

I have an arrangement of elements on a page:

1
相关标签:
3条回答
  • 2021-01-02 16:26

    Here is an example of how you can swap elements with drag and drop http://jsfiddle.net/76yRN/1/

    Another question about swapping elements in jquery jQuery draggable items lose their draggability after being swapped (with jsfiddle example)

    Hope this helps

    0 讨论(0)
  • 2021-01-02 16:34

    You just replace the elements from one to another. Some time ago i have created a demo for swapping elements between to UL list. check this: http://www.authorcode.com/swap-elements-when-drag-one-onto-another-using-jquery-ui/

    0 讨论(0)
  • 2021-01-02 16:40

    I used a combination of solutions to arrive at this, with #large_tiles and #small_tiles being two lists:

    $(function() {
    $("#large_tiles li, #small_tiles li").draggable({
        zIndex: 2,
        appendTo: "body",
    });
    
    initDroppable($("#large_tiles li, #small_tiles li"));
    
    initSwap();
    function initSwap() {
        initDroppable($("#large_tiles li, #small_tiles li"));
        initDraggable($("#large_tiles li, #small_tiles li"));
    }
    function initDraggable($elements) {
        $elements.draggable({
            zIndex: 2,
            appendTo: "body",
            helper: "clone",
            start: function(e, ui) {
                $(ui.helper).addClass("clone");
            },
            cursorAt: { left:50, top:75 }
        });
    }
    function initDroppable($elements) {
        $elements.droppable({
            activeClass: "active-tile",
            hoverClass: "hover-tile",
            over: function(event, ui) {
                var $this = $(this);
            },
            drop: function(event, ui) {
                var $this = $(this);
                var linew1 = $(this).after(ui.draggable.clone());
                var linew2 = $(ui.draggable).after($(this).clone());
                $(ui.draggable).remove();
                $(this).remove();
                initSwap();
            }
        });
    }
    });
    
    0 讨论(0)
提交回复
热议问题