3

我的场景是我有一个包含作为列表项的人名列表,我希望能够将这些名称拖到框中。我通过 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/

格拉西亚斯!

4

1 回答 1

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");
    }
于 2013-01-07T12:17:50.287 回答