Javascript 如何在不同选项卡之间拖放多个元素

Javascript 如何在不同选项卡之间拖放多个元素,javascript,jquery,jquery-ui,drag-and-drop,jquery-ui-tabs,Javascript,Jquery,Jquery Ui,Drag And Drop,Jquery Ui Tabs,我正在尝试在不同选项卡之间拖放多个元素 在这种情况下,当拖动一个项目时,我想将所有其他选中的项目一起拖动,就像将多封电子邮件从收件箱移动到另一个文件夹时,Gmail所做的那样 我认为有必要使用ui.helper,但我没有足够的查询技巧 以下是我目前正在使用的代码: $( "#sortable1, #sortable2" ).sortable().disableSelection(); var $tabs = $( "#tabs" ).tabs(); var $tab_items = $( "ul

我正在尝试在不同选项卡之间拖放多个元素

在这种情况下,当拖动一个项目时,我想将所有其他选中的项目一起拖动,就像将多封电子邮件从
收件箱
移动到另一个文件夹时,
Gmail
所做的那样

我认为有必要使用
ui.helper
,但我没有足够的查询技巧

以下是我目前正在使用的代码:

$( "#sortable1, #sortable2" ).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() {
      $tabs.tabs( "option", "active", $tab_items.index( $item ) );
      $( this ).appendTo( $list ).show( "slow" );
    });
  }
});

在做了很多修改后,我根据自己的想法提出了以下几点

基本上,我们使用
data()
保存所选项目,将选项卡初始化为
droppable()
,并将所选项目附加到drop事件中的sortable中

$('.connectedSortable')。在('click','input',function()上{
$(this.parent().toggleClass('selected');
});
$(“#可排序1,#可排序2”)。可排序({
回复:0,
helper:function(e,item){//create custom helper
如果(!item.hasClass('selected'))item.addClass('selected');
//隐藏前克隆所选项目
var elements=$('.selected').not('.ui可排序占位符').clone();
//隐藏所选项目
item.sides('.selected').addClass('hidden');
返回$('
    ')。追加(元素); }, 开始:功能(e、ui){ var$elements=ui.item.sides('.selected.hidden')。而不是('.ui可排序占位符'); //将所选项目存储到要拖动的项目 ui.item.data('items',$elements); }, 停止:功能(e、ui){ //在操作后显示所选项目 ui.item.sides('.selected').removeClass('hidden'); //取消选择,因为操作已完成 $('.selected').removeClass('selected'); $(this).find('input:checked').prop('checked',false); } }); var$tabs=$(“#tabs”).tabs(), $tab_items=$($ul:first li,$tabs)。可拖放({ 接受:“ul,.connectedSortable li”, hoverClass:“ui状态悬停”, drop:函数(事件、用户界面){ 变量$item=$(此), $elements=ui.draggable.data('items'), $list=$($item.find(“a”).attr(“href”).find(“connectedSortable”); ui.draggable.show().hide(“慢”,函数(){ $tabs.tabs(“选项”、“活动”和$tab_items.index($item)); $(this).appendTo($list).show(“慢”).before($elements.show(“慢”)); }); } });
    ul{
    列表样式类型:无;
    }
    .connectedSortable li{
    保证金:0 5px 5px 5px;
    填充物:5px;
    字体大小:1.2米;
    宽度:120px;
    }
    .chbox{
    右边距:10px;
    }
    .选定{
    背景:红色!重要;
    }
    .隐藏{
    显示:无!重要;
    }
    
    
    • 项目1
    • 项目2
    • 项目3
    • 项目4

      想知道答案是否有用……)