jQuery UI拖放交换元素

时间:2013-05-02 19:58:43

标签: jquery jquery-ui drag-and-drop

我无法处理一件事 - 在两个div之间交换元素。 这是我的代码

 $(function () {
    $('#container').sortable({
        tolerance: "pointer"
    });

    $('#box1').sortable({
        tolerance: "pointer"
    });
    $('#box1').on("sortreceive", function (event, ui) {
        var $list = $(this);

        if ($list.children().length > 1) {
            $(ui.sender).sortable('cancel');
        }
    });

    $('#box2').sortable({
        tolerance: "pointer"
    });
    $('#box2').on("sortreceive", function (event, ui) {
        var $list = $(this);

        if ($list.children().length > 1) {
            $(ui.sender).sortable('cancel');
        }
    });
    $('.item').sortable({
        connectWith: '.item'
    });
    $("#container,#box1,#box2").disableSelection();
});

我的小提琴:http://jsfiddle.net/kehator/TsJgR/

我想改变这一行:

    $(ui.sender).sortable('cancel');

它必须交换元素,而不是取消。而且我不知道该怎么做。许多脚本都无法工作......我无望。

1 个答案:

答案 0 :(得分:0)

试试这个:

                 <script>
                        $(function() {
                        $( "#sortable1, #sortable2" ).sortable({
                        connectWith: ".connectedSortable"
                        }).disableSelection();
                        });
                        </script>

                        <script>

                        $(function() {
                    $( "#sortable1" ).sortable({
                      connectWith: ".connectedSortable",
                        start: function(e,ui){
                            ui.item.css('border-style', 'solid');
                            ui.item.css('border-color', 'rgb(211, 211, 211)');
                        },
                        stop: function(e,ui){
                            ui.item.css('border-style', 'solid');
                            ui.item.css('border-color', 'rgb(252, 239, 161)');
                            ui.item.css('background', 'url("images/ui-bg_glass_55_fbf9ee_1x400.png")');
                            ui.item.css('background-repeat', 'repeat-x');
                        }
                    }).disableSelection();
                  });

                        </script>

                        <script>

                        $(function() {
                    $( "#sortable2" ).sortable({
                      connectWith: ".connectedSortable",
                        start: function(e,ui){
                            ui.item.css('border-style', 'solid');
                            ui.item.css('border-color', 'rgb(211, 211, 211)');
                        },
                        stop: function(e,ui){
                            ui.item.css('border-style', 'solid');
                            ui.item.css('border-color', 'rgb(211, 211, 211)');
                            ui.item.css('background', 'url("images/ui-bg_glass_75_e6e6e6_1x400.png")');
                            ui.item.css('background-repeat', 'repeat-x');
                        }
                    }).disableSelection();
                  });

                        </script>