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

标签 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 标记,请参阅下面的 fiddle 。
http://jsfiddle.net/sXRKd/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");
    }

关于javascript - jqueryUI - 将项目拖到多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14048767/

相关文章:

Javascript:如何获取此图像数据

javascript - JestJS:如何测试嵌套(异步)函数中的调用函数

android - Android 2.3选择框样式与Android 4.2不同

javascript - jQuery Tag-It - 使用标签和值对象列表

Javascript if/else 语句关于屏幕尺寸

javascript - react ( typescript ): How to loop inside const creation

javascript - 在 Electron 中禁用缩放(双指缩放和智能缩放 [mac])

jquery - 图像悬停效果-jquery

javascript - 计算历史记录中的页数

jquery 自动完成未在文本框中显示所选值