jqueryUI - 将项目拖动到多个列表

时间:2012-12-27 02:41:10

标签: javascript jquery-ui

我的情况是我有一个包含列表项的人名列表,我希望能够将这些名称拖到框中。我通过jqueryUI得到了这个部分,但我的问题是,当名称被拖到框中时,我不希望它被移出原始列表,因为一个人可以在多个列表中。

我认为问题在于我使用的是.appendTo而不是.add,但它显然不像只是将.appendTo切换到.add

那么简单

$( this ).appendTo( $list ).show( "slow" );

整个代码:

$(function() {
    $( "#sortable1, #sortable2, #sortable3" ).sortable().disableSelection();

    var $tabs = $( "#tabs" ).tabs();

    var $tab_items = $( "ul:first li", $tabs ).droppable({
        accept: ".connectedSortable li",
        hoverClass: "ui-state-hover",
        drop: function( event, ui ) {
            var $item = $( this );
            var $list = $( $item.find( "a" ).attr( "href" ) )
                .find( ".connectedSortable" );

            ui.draggable.hide( "slow", function() {

                $( this ).appendTo( $list ).show( "slow" );



            });
        }
    });
});

请参阅下面的小提琴,了解工作示例和HTML标记 http://jsfiddle.net/sXRKd/1/

格拉西亚斯!

1 个答案:

答案 0 :(得分:1)

希望,当你把一个人扔进另一个人时,它必须在两个地方都有用。例如,当您将josh mondie放入Close Friends时,必须同时使用All FriendsClose Friends

看看这个fiddle,它正常工作。

代码,

drop: function (event, ui) {
      var $droppableId = $("a", this).attr("href");
      var $newList = $(".connectedSortable", $droppableId);

      ui.draggable.hide("slow", function () {
        $newList.append(ui.draggable.clone().show());
      });
      ui.draggable.show("slow");
    }